輕微相關Should I delete or disable a row in a relational database?替代isActive
鑑於我會去與倉儲改變我在一個歷史表的表的策略,我面臨着用於實現給定行狀態下列選項在MySQL:
- 的
isActive
booelan - 的
activeStatus
枚舉 - 的
activeStatus
INT引用一個小ActiveStatus
查找TABL Ë - 的
activeStatus
INT不引用另一個表
第一種方法是在我看來很不靈活,因爲我可能需要在未來更布爾支持其他類型的活動狀態的(我不知道是什麼他們會,但可能像「被逐漸淘汰」或「對於隨機用戶羣體活躍」等)。
我被告知MySQL枚舉不好,所以第二種方法可能不會飛。
我喜歡第三種方法,但我想知道這是否是一個相對較小問題的重度解決方案。
第四種方法要求我們事先知道INT的每個狀態是什麼意思,似乎是一種過時的做事方式。
有沒有規範的正確答案?我是否忽略了另一種方法?
我在很多地方都讀過,認爲在MySQL中使用'ENUM'通常不是一個好主意... –
已經做了編輯 –
** [8個理由爲什麼MySQL的ENUM數據類型是邪惡的](HTTP:// komlenic。COM /8分之244-原因-爲什麼-mysqls-枚舉數據類型是惡/)** –