2009-11-13 155 views
0

0/1可以靈活並且可以添加諸如「2,3,4」之類的選項。我應該使用0/1還是True/False布爾值?

MySQL中的TINYINT是否佔用比布爾值更多的空間?

就我個人而言,我使用0和1作爲一切。

您可以在常規編程(或MySQL,無論你喜歡什麼)的情況下回答這個問題。

+0

上下文是MySQL嗎? – 2009-11-13 21:12:18

+4

等待,如果你基本上想讓0/1充當布爾值,那麼可能會有哪些其他選項?文件未找到? http://thedailywtf.com/Articles/What_Is_Truth_0x3f_.aspx – Brandon 2009-11-13 21:13:50

回答

7

任何有價值的鹽的數據庫系統都會將布爾轉換爲適合數據庫的東西,並且使用實際的布爾類型使得對它的編程更好。

1

布爾值在不同的數據庫(例如PostgreSQL)中更具可移植性。 Tinyint更靈活,可以升級到Enum-like。

最後的選擇應該是你的。 但除了SQL以外的任何地方,爲了清晰和類型安全,我肯定會推薦顯式的布爾值/枚舉「魔術數字」。

1

當我絕對確定我需要true/false作爲值時,我將在我的代碼中使用布爾類型。對於其他情況,通常從0/1開始是很方便的,因爲0可以作爲成功的返回碼,任何其他正或負整數都可以定義各種錯誤條件。

0

如果您在任何語言中做出真/假的決定,如果您的語言支持布爾值,請使用它。

使用0/1來支持「額外數字」可能意味着您的字段不是一個決定,並且可能成爲或成爲多個選項。