mysql数据库中的表字段设计?

zhu*_*hou 5 mysql

我对cms的数据库进行了研究:

uid(Unique user ID): 它设置为 int(11)

name(nique user name 它设置为 varchar(60)

created(tiemstamp for when user was created) 它设置为 int(11)

title 它设定的文章标题 varchar(255)

1,当我应该使用Int或char或varchar或其他类型

2,如何在括号中设置数字.eg:varchar(60) 谢谢!

Boo*_*eus 10

如果要使用主键(INT比字符串查找更快)或计算数据,则应使用INT.例如,您想要计算在线订购某些产品时购买的商品数量.每行都会有文章描述,价格,订购数量(以及更多 - 只是在这里给出一个例子).在这种情况下,如果数量为INT,则很容易检索订购的产品数量(发票的产品总数).

"char"和"varchar"类型的字符串略有不同."char"类型定义如下:

一个固定长度的字符串,在存储时始终用空格填充指定的长度.

换句话说,如果使用char(200)定义名字,则将使用200个字节.varchar类型定义如下:

可变长度的字符串.注意:存储值时将删除尾随空格(这与ANSI SQL规范不同)

换句话说,如果使用varchar(255)定义名字并且名称为"Tim",则将使用4个字节.3为名称+1字节的字段长度.

通常,您使用char(6)表示HTML颜色(FFFFFF),通常使用varchar作为名称,地址等...

关于你在设置括号中的数字时的第二个问题.此数字将设置字符串的最大长度.如果将varchar(60)设置为字段,并且当您插入或更新记录并且字符串的长度大于60个字符时,MySQL将截断该字符串以使用前60个字符.

您可以在此处查看所有字段类型:http://help.scibit.com/mascon/masconMySQL_Field_Types.html

您还可以阅读有关数据库规范化的信息:http://en.wikipedia.org/wiki/Database_normalization

  • +1引擎由MySQL引擎执行.你不能改变它.因为varchar是一个可变长度的字符串,所以需要告诉MySQL字符串的长度. (5认同)