如何存储未知和不同大小的文本input?

我正在尝试创build一个表(或几个)来接收用户input(UGC)。 这个内容的大小可以从单个字符到几百个字。 input将用utf8_unicode_ci编码,可以是拉丁字符或多字节字符。

input必须是可search的。

我应该如何构build我的数据库,以便在灵活性和性能之间做出妥协? 我可以例如…

  1. 设置一个string大小的上限,并采取性能和可用性点击。
  2. 为不同的大小范围创build几个表,并通过表名和ID的组合来识别每个项目(所以我需要一个具有唯一ID,表名,表特定ID的中央表)。
  3. 将每个input分解为不同的组成部分(即单词),并分别存储单词,以及将每个语句映射到一系列单词ID的关系。

我相信还有其他的select。

我猜这可能取决于你的数据库引擎,但很可能它有一个“Text”字段(与“Varchar”或“Char”相对应),适用于保存不同大小的文本数据。 基本上这是你的select#1。

如果它将在MySQL中,那么你有一个文本或Blob字段可用: http : //dev.mysql.com/doc/refman/5.6/en/blob.html