Postgresql

對少數不同的值進行規範化或不規範化

  • December 29, 2016

假設在 Postgres 數據庫中,您有一個名為 的表party,它可以包含少於 5 個定義良好的表,party_types例如“Person”或“Organization”。

您會將其儲存party_typeparty表中(例如party_type = 'Person')還是對其進行規範化(例如party.party_type = 1and party_type(id, name) = (1, 'Person'))?

為什麼?

如果您正在實施黨-角色-關係模型或其中的一部分,那麼擁有party_type一個單獨的實體非常重要。您可能有更多帶有外鍵的表 party_type (例如,將某些角色的適用性限制為特定的派對類型

$$ s $$,或強制執行不同類型的各方之間的關係等)。在這種情況下使用任何形式的檢查約束(包括列舉)都會隱藏邏輯並使維護更加困難。

我會為此使用一種enum類型

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