-1

我已经在规范化数据库的一些数据的裂缝,如果任何人可以告诉我,如果它的正确归一化将不胜感激。 下面是结构:数据库规范化

enter image description here

我已经使用复合密钥(事件ID和动作代码),其为某些事件不会需要相同类型的两个动作。有没有更好的方法来做到这一点?我想添加一个动作ID自动编号,但是这样好吗?

如果有人可以帮忙,谢谢。

回答

0

就我个人而言,我会使用ActionID作为我的密钥 - 这实际上取决于您将如何处理数据和卷。

我可以看到它是有用的,以获得一个事件的列表,你已经采取了一个特定的行动,这将更容易得到一个索引就行动代码,也有一个组合键可能会导致页在聚集索引上分裂,这显然具有开销。

+0

嗨安迪,感谢您的反馈。我应该将操作ID添加到UNF并再次正常化吗?由于这需要记录,我不相信我可以证明在1/2NF期间生成ActionID是正确的吗? – user3189899

+0

我真的不会在第一场第二场比赛的第三场比赛中太笼罩 - 因为他们说“正常化,直到它伤害,然后解除正常化,直到它正常工作”。我只是将ActionID添加到Action表中,显然我不知道你的需求在文档方面是什么,但是如果你必须将步骤记录到3nf,我会严肃地质疑它是4NF,5NF等的错误? – AndyReilly

+0

再次感谢安迪。它确实需要归一化为“3NF或BCNF”。添加动作ID应该只会稍微影响2NF。谢谢,西蒙 – user3189899