Unique-Constraint

列舉表的數據庫實體設計

  • August 22, 2018

我列舉了大約 10 個值 - 它們是 Char,例如 A 到 K。這些都是獨一無二的。它們用於兩個目的 - 應用程序被迫選擇可接受的值,並且產品與此列舉表之間存在多對多關係。

將主鍵設置為這個唯一值是不好的做法嗎

$$ A-K $$? 所以基本上一列 char(1) 作為主鍵。還是應該使用 ID 欄位,然後將這些值設置在列中並強制該列唯一? 此列舉中的值永遠不會改變。它們由表示固定。例如,位置 1 只能是位置 1,就像一壘永遠是一壘並且永遠不會成為三壘(或者至少在過去 150 年中它沒有——我的應用程序可能不會持續那麼久)。所以這就是為什麼我想簡單地這樣做——因為它確實是永久的、不變的。

如果您的設計師或使用者在選擇這些值時需要做出任何類型的選擇,我會選擇代理 ID 方法。已經決定的事情可能還沒有決定,如果有代理人,改變會更容易。

由於您堅持這些值是由自然法則(或者至少是一些外部權威)確定的,所以我可以使用單列方法。在這些情況下,更改的機會以及更廣泛的影響意味著您可能會獲得足夠的通知來影響應用程序更新。

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