我对一个内容管理系统的数据库进行了研究:
uid(唯一用户ID):
它设置为int(11)
name(唯一用户名):
它设置为varchar(60)
created(用户创建时间戳):
它设置为int(11)
title
文章标题,它设置为varchar(255)
1、何时应使用Int、Char、Varchar或其他类型?
2、如何设置括号中的数字。例如:varchar(60)
。谢谢!
我对一个内容管理系统的数据库进行了研究:
uid(唯一用户ID):
它设置为int(11)
name(唯一用户名):
它设置为varchar(60)
created(用户创建时间戳):
它设置为int(11)
title
文章标题,它设置为varchar(255)
1、何时应使用Int、Char、Varchar或其他类型?
2、如何设置括号中的数字。例如:varchar(60)
。谢谢!
当您想使用主键或计算数据时,应使用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
一般来说,数据类型取决于您需要存储的内容。但是,在设计数据库表时也应考虑PK索引的速度和大小。
括号中的数字表示类型大小,具体含义取决于类型(例如,varchar表示可以存储的最大字符数)。您应该查看数据库引擎的手册以了解更多信息。