主子表或者叫主从表 怎么设计是最好的呢?

castlooo 2007-12-19 11:41:24

我是这么设计的 主表 ID 为自增长
从表中 有自己的自增长ID 同时以 主表的自增长ID 做为关键字

这样做 好不好 有什么问题呢?
...全文
347 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
leihentulong 2007-12-19
  • 打赏
  • 举报
回复
我这里的主表的id是自己生成的.
从表里面调用此id.灵活性大点.
可能有并发问题.
rouqu 2007-12-19
  • 打赏
  • 举报
回复
按你所述 主表更新之后 如插入一条记录 30001 colA colB...

从表也要插入60001(自增) 30001(FK) ....可以在主表上建触发器 eg:

create trigger t_xxx on ParentTab1
for insert
as
insert into ChildTab1(...) select ... from inserted
go

我每次插入数据的时候 先插入主表,然后再一条一条的插入子表,如果插入子表任何一条出错,全部回滚,是不是这样子?
------
那要看XACT_ABORT的设置 如果你设置为ON 事务内所有DML都将回滚 否则(默认情况)错误行回滚 但编译都不通过的不算






castlooo 2007-12-19
  • 打赏
  • 举报
回复
期待...
不够再开帖加分
castlooo 2007-12-19
  • 打赏
  • 举报
回复
先找到最大的主表的ID 用max(ID) 是不是这样子呢?

如果这样子的话, 我还要自增长干什么?

我总觉得设计有点问题
castlooo 2007-12-19
  • 打赏
  • 举报
回复

这样的话
我每次插入数据的时候
先插入主表,
然后再一条一条的插入子表,如果插入子表任何一条出错,全部回滚 ,是不是这样子

我再插入主表之前 先找到最大的主表的ID 然后插入主表记录

子表再根据以及记下的主表ID插入子表记录, 是不是这样子
castlooo 2007-12-19
  • 打赏
  • 举报
回复
以主表的自增长ID 做为连接主从表的关键字

例如主表A
ID 主表ID自增长
Cola
Colb
从表Alist
ID 从表ID 自增长
AID 主表ID 用来关联A,Alist
。。。。
rouqu 2007-12-19
  • 打赏
  • 举报
回复
我是这么设计的:主表ID为自增长,从表中有自己的自增长ID,同时以主表的自增长ID做为外键
-----------
但是这主从表的关系没体现出来?
dawugui 2007-12-19
  • 打赏
  • 举报
回复
做为关键字

这个说法也对.

就是这么设计的.
dawugui 2007-12-19
  • 打赏
  • 举报
回复
我是这么设计的 主表 ID 为自增长
从表中 有自己的自增长ID 同时以 主表的自增长ID 做为关键字

这样做 好不好 有什么问题呢?

----------------------------------------
同时以 主表的自增长ID 做为外键.
rouqu 2007-12-19
  • 打赏
  • 举报
回复
最好给出表的名称和大致结构 好判断
castlooo 2007-12-19
  • 打赏
  • 举报
回复
我这里的主表的id是自己生成的.
从表里面调用此id.灵活性大点.
可能有并发问题.

-------------------
主表自增 ID也会存在这个问题吧

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧