会员表的数据类型?

时间:2012-02-06 12:13:44

标签: java mysql types

在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

任何帮助都非常感谢。

1 个答案:

答案 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的同义词。