所以我正在创建一个评论表,我很想知道。什么是评论细节的好方法?我说道。那么,如果longtext可以处理它,为什么人们需要varchar呢?另外,我想要哪种类型的用户名?
索引的“主要”目的是什么?索引的目的是什么?
更新 假设评论实际上是评论。
答案 0 :(得分:2)
TEXT可以处理您在VARCHAR或CHAR字段中输入的任何输入。事实上,TEXT可以处理您想要放入DECIMAL,INT或几乎任何其他类型的数据。遵循这个逻辑,我们也可以使每一列成为TEXT类型。
但这是一个错误。为什么?因为为预期输入使用适当的列类型允许数据库更好地优化查询,使用更少的磁盘空间并使数据模型更易于理解和维护。
关于问题:用户名列应该使用VARCHAR(20),因为您希望并期望大多数用户名都会缩短,通常不超过10到20个字符。对于评论栏(如电影评论或书评),TEXT类型是合适的,因为评论可以跨越单个段落到多个页面。
关于索引,请尝试以下链接:
http://20bits.com/articles/interview-questions-database-indexes/
答案 1 :(得分:0)
这取决于系统中的“评论”。通常,VARCHAR对于注释和用户名都非常标准。这限制你大约255个字符,这通常是可以接受的。如果您的评论中需要更多字符,则可以将其添加到文本中,这样可以为您提供超过65,000个字符。
有关详细信息,请参阅String Types Reference。
答案 2 :(得分:0)
<强> TEXT NOT NULL
即可。这提供了足够的空间,有2字节的开销,并且通常没有问题。
关于TEXT
在比较时,TEXT是空间扩展的 完全符合比较对象 像CHAR和VARCHAR。
对于BLOB和TEXT列的索引, 您必须指定索引前缀 长度。对于CHAR和VARCHAR,一个前缀 长度是可选的。见7.4.2节, “列索引”。
BLOB和TEXT列不能有 默认值。
如果您使用BINARY属性 TEXT数据类型,分配列 列的二进制排序规则 字符集。
关于VARCHAR:
VARCHAR列中的值是 变长字符串。长度 可以指定为0到0之间的值 在MySQL 5.0.3之前255,并且0到 5.0.3及更高版本中的65,535。 a的有效最大长度 MySQL 5.0.3及更高版本中的VARCHAR是 受最大行大小限制 (65,535字节,在其中共享 所有列)和字符集 使用
答案 3 :(得分:0)
看看这个web page,它列出了所有的MySQL字段类型,并描述了它们是什么以及它们之间的区别。