数据库表多对多的设计

先上问题!    

现在有A、B、C三张表,A和B是一对多的关系,B和C是一对一的关系,C和B是一对多的关系,A和C是多对多的关系。问题:是否设计第四张表专门存放A、B、C的关系,还是把关系维护在B表中?

原则:

首先在数据库中不建议建立三维关系。其实就是说一张表(关系表)不要维系三个模型的的关系

设计思路ER图:


一共四张表,其中表2中有1和3的主键引用(可以设计为外键),1和3有一张桥表4进行多对多关联。

这个地方主要看你的A和C是否真的有直接关系,一定要分析清楚。A和C可能没有关系,因为B的存在,他俩貌似有这么一个关系。如果A和c没有关系,就不用建关系表4。

建议数据库中,不要建外键约束。因为数据库在进行写表操作的时候会将该表和该表所有外键指向表....指向的指向,等等一串表都要进行写锁保护,那么其他表的写操作需要进行等待,造成不必要的性能问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值