mysql - 规范化联结表中的列

标签 mysql sql database-design

我有以下设计。 deleted_by 为三个联结表引用相同的 users 表。我是否应该进一步规范化此架构并放置 deleted_bydate_deletedreason_of_delete(以及 added_bydate_added 我没有在单独的表格中显示),如果是这样,怎么做?

旁注。我在纠结是否应该使用术语 many-to-many 表、cross 表、join 表或其他术语。如果我应该使用不同的术语,请告知以便我可以编辑这篇文章或直接编辑它。谢谢编辑。根据 RBarryYoung 的评论更改为“连接”表。

enter image description here

最佳答案

多对多作为这种模式的描述很好。在不了解系统的所有要求的情况下,很难做出任何明确的陈述。最大的问题是,那些删除列是引用文档本身还是引用该文档与其他表(例如 table2)的关系。假设它们是指关系本身,那么将它们按原样放在表中就完全没问题了。虽然多对多模式通常在一个表中只有两个 ID,但这根本不是必需的。

如果那些删除的列引用了文档本身,那么它们应该被移到那个表中,否则你会在多个地方复制数据并且不得不担心保持所有同步,这是一个非常头疼的问题.

关于mysql - 规范化联结表中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35295398/

相关文章:

Python&Peewee - 动态 where 子句

php - 作为函数返回写入数据后从数据库返回一个值

mysql - MySql 数据类型的使用

mysql - 与加入 codeigniter mysql 不同

mysql - 修改查询以显示所有电子邮件重复项

mysql - 导入: separators into MySQL database的文件

database - 数据库设计 : one or two tables to remember a user choice

php - 将记录插入主表;另一个表的外键列

mysql 选择唯一行

sql - IN 条件左侧的多列