建外建好还是建关联关系表好

寒风情 2018-07-03 11:04:05
有个合同表A ,有个字段是合同阶段
合同阶段分很多阶段,并且每个阶段又有很多字段 ,于是我新建了一个合同阶段表B
合同阶段B里面又有一个字段是验收条件,验收条件有很多字段,于是我又建了个验收条件表C

现在有两个实现方式:
实现方式一:在B表里面建A的外键,C里面建A,B的外键
实现方式二:新建一个关联关系表D,存放A,B,C的关联关系

我应该选哪一种?

谢谢!
...全文
159 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
寒风情 2018-07-27
  • 打赏
  • 举报
回复
我们公司是金融数据,没有外键会引起很多脏数据,出现生产问题不好排查,表有上千张,不建立外键无法管理,新人来了对表结构不熟悉,业务不懂 ,表跟表关系搞不懂更搞业务知识了 ,外键能体现业务知识 ,我们的数据量是千万级别的,没发现有性能影响啊
yaiger 2018-07-27
  • 打赏
  • 举报
回复
有外键的话,在插入子表时,系统会校验数据完整性,导致性能损失
yaiger 2018-07-11
  • 打赏
  • 举报
回复
是否建外键,一直都是有争议的。
外键是为了数据完整性,但是会影响性能。

如果数据量不大的话,就加外键吧。关系表没必要
卖水果的net 2018-07-03
  • 打赏
  • 举报
回复
按设计来说,仅仅 B 的外键就可以了。 但是 C 表中要保留 A 的ID,方便写开发人员。也就是常说的“冗余”;
寒风情 2018-07-03
  • 打赏
  • 举报
回复
A表与B表是1对多
B表与C表是1对多

C属于B ,B属于A

那请问一下 ,C里面同时建A和B的外键 还是 C里面仅仅建B的外键

谢谢!
卖水果的net 2018-07-03
  • 打赏
  • 举报
回复
这个是数据库设计的问题。

如果数据是 一对多,使用外键比较好。
如果数据是 多对多,使用关系表。
nayi_224 2018-07-03
  • 打赏
  • 举报
回复
在B表里面建A的外键,C里面建B的外键。好。

就是任性,不想写关联语句的话,建个视图好了。

17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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