三个表之间的连接表的优点和缺点,在任何给定时间只有两个表



我将在三个表之间建立多对多关系,但这种关系一次只在一个表(例如TableA)和其他两个表(例如TableB和TableC)中的一个之间。也就是说,我可以有一个连接表

id | TableA_id | TableB_id | TableC_id

带有约束,以确保TableB_id为null或tablelec_id为null,或两个连接表

id | TableA_id | TableB_id
id | TableA_id | TableC_id

什么是好的标准来决定我应该使用这两种可能性中的哪一种?

好的数据库设计方法是永远不要存储NULL数据(在现实世界中,您当然可以过度规范化)。因此选项2更好。

由于表B和表C之间没有明确的直接关系,所以我将这些关系保存在单独的表中,这更像是星型模式/雪花模式。从数据建模的角度来看,它比一个可以在两个不同方向连接的表要容易理解得多。

相关内容

最新更新