【发布时间】:2018-02-13 09:53:39
【问题描述】:
由于我是 SQL 新手,请帮助解决表的规范化问题。我有五个表。
Table1-->Column1,Column2.
Table2-->Column3,Column4.
Table3-->Column5,Column6,Column3.
Table4-->Column7,Column8,Column5.
Table5-->Column9,Column10,Column11,Column12,Column1,Column5,Column7.
这里 Column1,column3,Column5,Column7 和 Column9 是主键,Column1,Column5 和 Column7 是 Table5 的外键,我的 PHP 条目将是 Table5。问题是我收到了 Table5 的重复条目。 Table5 一天会有多个条目。我想将(Column1 和 Column7)作为唯一键。有没有办法为 2 个组合外键提供唯一键。我试过了,
Alter Table Table5 Add UNIQUE KEY(Column1,Column7);
但将错误作为 column1 的重复值。 这是一个内部应用程序,因此在 XAMPP 上运行,数据由不同系统通过 LAN 输入并保存在本地服务器中。这是否会导致任何问题。请帮助解决问题,因为一天输入了 1000 多个数据。
提前致谢。
【问题讨论】:
-
请尝试在您的示例中使用有意义的名称。它比 Column1....Column12 更容易阅读
-
。请阅读minimal reproducible example 并采取行动。给出准确的 DDL、错误消息、表格内容等。阅读官方文档重新 UNIQUE 索引和 FK。如果您在 5 中错误地获得了重复条目,阻止它们被插入只能解决部分问题。为什么会这样?应该发生什么? PS这不是标准化。你认为这个词是什么意思?
-
所以您运行 ALTER TABLE 语句并收到表中有重复项的错误?然后先删除重复项,然后运行语句。
标签: mysql sql database-design database-normalization