當創建一個表的字段時,我不知道哪個類型(int,char,varchar ....)和我應該在字段上使用的大小。例如:電子郵件,時間,地址,電話....等等。mysql ---我應該使用哪種類型?
0
A
回答
2
這裏有一套一般的經驗法則。在列出的順序應用它們:
- 如果它是一個時間或日期,使用時間或日期類型
- 如果你打算做就可以了數學,用一個數值類型,如整數,浮點數, REAL或DECIMAL。諸如電話號碼或學生證號碼等數字不需要是數字類型,但其中一些可以是你想要的。如果你要添加,減去,乘,或比較範圍的數字,絕對使它們的數字類型。如果你不打算那麼它可能不需要數字。一個很好的相關經驗法則是,如果數字「00」與您的情況的數字「0」相同,那麼它應該是數字。如果這些數字不同(例如某些情況下的房間號碼或學生證件),那麼它不應該是一個數字。 (我會根據經驗法則選擇下面的數字類型。)
- 對於其他所有情況,請使用字符串類型。具體來說,如果您確切地知道長度或在幾個字符內知道長度,請使用該長度的CHAR。
- 如果您不知道長度,請使用VARCHAR並選擇合理的最大長度。也就是說,你肯定會足夠長的時間,而不會感到無聊。例如,僅僅因爲沒有你的朋友的姓氏超過15個字符,姓氏的VARCHAR(15)聽起來就會發現,直到你需要插入Schwietzer-McCullough先生。但是VARCHAR(100000)可能是矯枉過正的。對於姓氏,VARCHAR(50)的順序可能是合適的,但VARCHAR(100)是合理的。
選擇數值類型:
- 如果它是一個整數,而且將永遠是一個整數,選擇一個整數類型。再次,您必須根據其可能具有的最大價值來選擇尺寸。這裏有一個頁面:http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html其中包含了MySQL中不同大小的INT類型的最大值的圖表。
- 如果是十進制數字,例如貨幣值,百分比,溫度或大多數普通小數值,請使用DECIMAL。 (NUMERIC的含義與MySQL中的DECIMAL相同。)您將選擇兩個數字(例如DECIMAL(6,2))。第一個數字是要存儲的總位數。第二個數字是小數點右側的位數。也就是說,如果你需要存儲大約1美元到10美元不等的牙膏價格,你可以做DECIMAL(4,2),它可以存儲從0.00到99.99的數字。如果您必須存儲可能包含小數美分的股票價格並且相當高,那麼您可能需要DECIMAL(10,3),其範圍從0.000到9999999.999。
- 如果您有需要用科學計數法表示的數字,並且您將在其中進行大量的數學計算,並且您需要這些數字纔是高效的,請使用REAL或DOUBLE。不要使用這些存儲價格或百分比或類似的東西(見2),因爲它們會引入微妙的不準確性。但是如果你的答案可以從8x10^-5變化到2.58x10^34,那麼是的,對於那樣的東西,使用DOUBLE。需要警告的是,這些實際上並不是以X * 10^Y的形式存儲的,而是因爲計算機以二進制形式工作,所以一些數字可能與它們的十進制表示形式稍有不同。這就是爲什麼我們不把它們用於貨幣。
- 如果你有一個類似於3的數字,但是你確實需要存儲空間,那麼使用FLOAT。真的,在實踐中,你可能永遠不會使用FLOAT。他們像DOUBLE,但是大一半。
2
不要對數字使用整數,也不要將varchar用於可變寬度的字符行。如果您使用比實際輸入更小的大小,您將通過丟失數據來節省磁盤空間。
-1
那麼,您可以使用varchar字段除時間以外的所有字段。對於時間字段,您可以使用稱爲時間的數據類型,因爲這將幫助您輕鬆操作數據。
+0
這個問題最糟糕的建議。 – zerkms 2011-01-09 06:49:02
相關問題
- 1. 我應該爲我的列使用哪種數據類型? [MySQL]
- 2. 我應該在AlarmManager中使用哪種類型的類型?
- 3. 我應該使用哪種類型的數據庫?
- 4. 我應該使用哪種Web Feed類型?
- 5. 我應該使用哪種類型的asio解析器對象?
- 6. 我應該使用哪種文檔類型?
- 7. 我應該在iOS/Objective-C中使用哪種布爾類型?
- 8. 我應該使用哪種類型的調度算法?
- 9. 我應該使用哪種類型的指針? ptrdiff_t或void *?
- 10. 我應該使用哪種類型的陣列
- 11. 我應該使用哪種類型的Android服務?
- 12. 我應該使用哪種類型的Django Rest Framework
- 13. 我應該使用哪種類型的Tizen項目?
- 14. 我應該爲GWT 2.0使用哪種文檔類型?
- 15. 在Golang中,我應該使用哪種類型的方法專用類型?
- 16. 我應該使用哪種類型的jdk來開發我的應用程序?
- 17. Windows窗體應用程序 - 我應該使用哪種數據庫類型?
- 18. 我應該在MySQL中使用哪些類型的數據?
- 19. 應該使用哪種數據類型的錢
- 20. WCF OperationContract - 我應該公開哪種通用集合類型?
- 21. 我應該在我的db模型中使用哪種驗證?
- 22. 我應該在哪種Mysql類型中保存我的新聞字段?
- 23. 我應該使用哪種PayPal iPhone SDK?
- 24. 我應該使用哪種IVI參考?
- 25. 我應該使用哪種語言?
- 26. 我應該使用哪種IronPython IDE?
- 27. 我應該使用哪種佈局?
- 28. 我應該使用哪種Azure角色?
- 29. 我應該使用哪種DAL選擇?
- 30. 我應該使用哪種python安裝?
猜測,至少...? – BoltClock 2011-01-09 06:23:49
顯然你必須使用**最合適的**類型。 – zerkms 2011-01-09 06:28:29