当创建一个表的字段时,我不知道哪个类型(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