-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