2011-08-30 206 views
0

我只是想獲得不同的人的意見,因爲由於某種原因,我沒有在正確的地方看,但大多數人使用什麼或更好,但什麼是最容易接受的東西存儲在一個具有活動值或非活動值的數據庫。我正在考慮爲狀態創建一個數據庫表,第一個表爲狀態,第一個表爲狀態,另一個表示狀態爲非活動狀態,然後在創建新的內容頁面或其他類型時有一個表單,並有一個選擇性下拉列表,其值爲active(1)或inactive 2)並存儲1或2作爲該內容頁面的status_id。數據庫的存儲

這是最好的方法還是有更好的方法?

回答

1

這取決於它所支持的數據類型,使用的數據庫和使用布爾和枚舉(「有效」,「無效」)。如果它有Boolean值的內置型我會使用,否則我會用一個char(1)check constraint來檢查的允許值(0/1n/y),因爲它比任何其他類型的更快的走出去,它完成這項工作。

如果您有多個布爾標誌(即是相關的,但不是必要的),並且不需要在每個標誌的基礎NULL的支持(即第三狀態)我會去與位標誌一個numeric列如果你的數據庫支持(1=true0=false,第一位標誌爲1,第二位爲第二標誌等等)。
Mysql對位操作有很好的支持,請參見here

3

我通常只使用布爾值。 0是無效的,1是有效的。

+0

你以爲我應該有一個單獨的狀態表,並有一個下拉列表,或者你認爲有更好的方法嗎? –

+1

這取決於模式。對於像選項表這樣的東西,我只需要一個'狀態'列,然後你可以循環遍歷結果集並使用foreach(結果集中的行){if(status = 1){do stuff}} –

1

你可以爲同一個