2010-07-15 95 views
0

我知道也許這是一個愚蠢的問題,但我吸取在sql什麼字段類型?

但是,你應該有哪些字段類型只能有數字1到5的字段? 5是最大值,1是最小值。 這是目前int(11) not unsigned

我聽到了錯誤的類型可能會傷害服務表現

編輯:數據庫InnoDB的。 RDBMS是MySQL

回答

2

根據您的RDBMS,使用一個可以保持較小值的整數。

MySQL has a tinyint datatype,這是1字節的大小,並通過127

在當前版本MySQL apparently doesn't have check constraints implemented持有0-255的值或-128,所以你要麼必須自己執行你的1-5範圍要求在其他代碼中。在編寫觸發器來強制執行這個業務邏輯時有一些建議。

你在數據類型傷害性能上是正確的,但在這種情況下,它不太可能適用。考慮這個微觀優化,但仍值得考慮。

+3

聖牛! MySQL不支持檢查約束?這是實現數據完整性的核心工具。這實際上是犯罪。 – Thomas 2010-07-15 04:42:34

+0

非常感謝!我可以檢查它與PHP – Damjan 2010-07-15 04:59:54

0

什麼是數據庫平臺?

我通常會選擇最小的,併爲數據質量/完整性的好測量添加檢查約束。

對於SQL Server,這將是tinyint(0-255)。

相關問題