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