我有以下设计。 deleted_by
为三个联结表引用相同的 users
表。我是否应该进一步规范化此架构并放置 deleted_by
、date_deleted
和 reason_of_delete
(以及 added_by
和 date_added
我没有在单独的表格中显示),如果是这样,怎么做?
旁注。我在纠结是否应该使用术语 many-to-many
表、cross
表、join
表或其他术语。如果我应该使用不同的术语,请告知以便我可以编辑这篇文章或直接编辑它。谢谢编辑。根据 RBarryYoung 的评论更改为“连接”表。
最佳答案
多对多作为这种模式的描述很好。在不了解系统的所有要求的情况下,很难做出任何明确的陈述。最大的问题是,那些删除列是引用文档本身还是引用该文档与其他表(例如 table2)的关系。假设它们是指关系本身,那么将它们按原样放在表中就完全没问题了。虽然多对多模式通常在一个表中只有两个 ID,但这根本不是必需的。
如果那些删除的列引用了文档本身,那么它们应该被移到那个表中,否则你会在多个地方复制数据并且不得不担心保持所有同步,这是一个非常头疼的问题.
关于mysql - 规范化联结表中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35295398/