在mysql数据库上使用成员表和得分表的最佳数据类型是什么?
我正在用Java创建一个连接到托管mysql数据库的游戏。我不确定每个字段使用哪种数据类型。
我拥有的字段是:
TABLE tMembers
ID INT(11)
firstName VARCHAR(255)
lastName VARCHAR(255)
email VARCHAR(255)
username VARCHAR(255)
password VARCHAR(255)
TABLE tScores
ID INT(11)
SCORE INT(11)
DATE DATETIME
我已经听到了一些关于SO的内容,并且只是通过谷歌搜索关于使用VARCHAR(80)
用于电子邮件等的效率,因为电子邮件不能超过这个,这是真的吗?
对于名称,varchar
优于text
(因为名称不能包含数字或符号,为什么不使用text
?)
此外,对于ID
,我应该使用INT
还是INTEGER
?
任何帮助都非常感谢。
答案 0 :(得分:1)
我在SO上听过一些事情,只是在谷歌搜索关于 使用VARCHAR(80)进行电子邮件等的效率,因为电子邮件不能 比这还长,这是真的吗?
是的,如果将列定义为varchar(x),则要保存到该列中的值的长度应小于x。
对于名称,varchar比text更好(名称不能包含 数字或符号,为什么不只使用文字?)
varchar包含(最大长度)字符少于文本,取决于您使用的mysql版本。例如5.03+ varchar可以包含65535个字符。但是根据您的要求,“名称”的varchar类型可以。
另外,对于ID,我应该使用INT还是INTEGER?
据我所知,mysql中的INT和INTEGER是一样的。校验 http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html 在那里你可以看到:
MySQL支持所有标准SQL数值数据类型。这些类型 包括确切的数字数据类型(INTEGER,SMALLINT,DECIMAL和 NUMERIC),以及近似数值数据类型(FLOAT,REAL, 和双精度)。 关键字INT是INTEGER的同义词,和 关键字DEC和FIXED是DECIMAL的同义词。