2017-09-05 68 views
-1

由于我是SQL的新手,我需要您的帮助来解决表格的规范化问题。我有五个表格。表格的规范化

Table1-->Column1,Column2. 
Table2-->Column3,Column4. 
Table3-->Column5,Column6,Column3. 
Table4-->Column7,Column8,Column5. 
Table5-->Column9,Column10,Column11,Column12,Column1,Column5,Column7. 

在此列1,栏3,Column5,Column7和Column9是主键和列1,Column5和Column7是表5的外键和PHP我的作品将是表5。问题是我得到表5的重复条目。 Table5会在一天中有多个条目。我想给(Column1和Column7)一个唯一的密钥。有没有什么办法可以为2个组合的外键提供唯一的密钥。我试过了,

Alter Table Table5 Add UNIQUE KEY(Column1,Column7); 

但是获得错误值为column1的重复值。 这是一个在XAMPP上运行的内部应用程序,数据由不同系统通过局域网输入并保存在本地服务器中。这会导致任何问题。请帮助解决问题,因为每天输入的数据超过1000个。

在此先感谢。

+2

请在您的示例中尝试使用有意义的名称。然后阅读Column1 .... Column12 –

+0

要容易得多。请阅读并在[mcve]上采取行动。给出确切的DDL,错误消息,表格内容等。阅读官方文档re UNIQUE索引和FK。如果您在5中错误地获取重复条目,阻止它们插入仅解决部分问题。为什么会发生?应该发生什么? PS这不是标准化。你觉得这个词是什么意思? – philipxy

+1

因此你运行ALTER TABLE语句并得到表中有重复的错误?然后首先删除重复项,然后运行语句。 –

回答

0

您应该考虑在表5上创建一个组合键,如下所示: 而不是Column9作为主键使用Column1,Column5,Column7作为组合键。