mysql - MySQL: VARCHAR VS TEXT?

  显示原文与译文双语对照的内容

我在MySQL中有一个消息表,它记录用户之间的消息。 除了典型的ids和消息类型( 所有整数类型),我需要将实际的消息文本保存为VARCHAR或者 TEXT 。 我在设置一个front-end限制也就意味着这些消息永远不会被插入到 db 3000字符看作比这个长。

使用 VARCHAR(3000) 或者文本的理由是什么? 写 VARCHAR(3000) 感觉有点像 counter-intuitive 。 我在堆栈溢出上经历过其他类似的文章,但最好是获得特定于这种类型的公共消息存储的视图。

任何帮助将不胜感激。 谢谢。

时间:

为了澄清最佳实践:

  1. 文本格式消息几乎总是以文本形式存储( 它们最终会被任意长)

  2. 字符串属性应该存储为 VARCHAR ( 目标用户名,主题等。) 。

我知道你有一个前端极限,这很好,直到它不是。 *grin* 窍门是把数据库看作与连接它的应用程序分离。 仅仅因为一个应用程序对数据施加了限制,并不意味着数据本质上是有限的。

关于那些强制他们永远不会超过 3000个字符的消息? 如果它只是一个任意应用程序约束( 比如说,对于一个文本框或者一些东西),在数据层使用 TEXT 字段。

...