Foreign-Key

表之間的多個主外鍵連接冗餘?

  • October 18, 2020

我有兩張桌子,評論和評論家

在此處輸入圖像描述

我對 RDBMS 很陌生,我想知道 Review.rID 和 Critic.Review 之間的連接是否是多餘的?

我的理由是,一個評論家可以有很多評論,但每條評論都是獨一無二的,所以我需要一種方法來強制評論的獨特性。我是通過獨一無二的 Review.rID 做到的。我還需要表示,多個批評者可以留下多個評論。

但是,我已經通過在 Review 中包含一個criticID 來將評論家連接到評論,那麼我是否有必要將一個 reviewID 也連接到評論家中的評論家?

評論家中的評論欄意味著評論家只能進行一次評論,這將使該職業非常不理想。主鍵唯一標識一行,它可能不一定強制內容的唯一性。在您的情況下,rID 不會阻止多次插入相同的評論。

一個評論者可能有多個評論(包括同一部電影)。評論必須來自一位評論者(除非您希望允許多個評論者撰寫評論)。基於該模型,您需要在 review 中使用 FK 列 cID 而在critic 中不需要任何內容。此外,cID 列應該有一個非空約束,因為評論必須屬於評論家(除非您想要不屬於任何評論家的評論)。

現在的問題是如何防止同一評論被多次插入。我能想到的唯一可靠的方法是對評論內容進行雜湊處理,並將結果儲存在評論表中具有唯一約束的列中。

引用自:https://dba.stackexchange.com/questions/278245