這可能是一個基本的數據庫問題,但我更習慣於使用對象而不是表格。假設我有一個物體'流派'的對象'電影'。流派應該使用枚舉類型進行限制(例如,唯一有效的流派是恐怖,動作,喜劇,戲劇)。這應該如何轉換爲數據庫模式?數據庫模式中的枚舉類型
- 我可以在Movies表中放置'genre'列,並依靠檢查輸入來確保'流派'賦值有效嗎?
- 或者,我可以包含具有預填充行的流派表,然後在Movies表中包含具有到流派表的外鍵的列?
我傾向於第一種選擇,但有缺陷/等。我不考慮?
這可能是一個基本的數據庫問題,但我更習慣於使用對象而不是表格。假設我有一個物體'流派'的對象'電影'。流派應該使用枚舉類型進行限制(例如,唯一有效的流派是恐怖,動作,喜劇,戲劇)。這應該如何轉換爲數據庫模式?數據庫模式中的枚舉類型
我傾向於第一種選擇,但有缺陷/等。我不考慮?
我傾向於使用查找表,第二個選項。我更喜歡這個的原因是我可以添加一個新的流派,只需添加一行到流派表。不需要修改代碼或修改架構中的枚舉定義。
另見我的回答How to handle enumerations without enum fields in a database?
這是一個有益的啓發:你把從客戶端代碼相同的所有值?
灰色地帶是如果你做一點點的兩個。例如。您需要以特殊方式處理值,但仍然會有一些額外的字段(與每個值關聯),您可以對其進行統一處理(例如,僅將其顯示給用戶)。或者您需要以特殊方式處理某些值。在這些情況下,我會傾向於查找表。
或刪除或修改舊值。