我正在尝试创建一个(或多个)表格来接收用户输入(UGC)。此内容的大小可能从单个字符到几百个字不等。输入将被编码utf8_unicode_ci
,可以是拉丁字符或多字节字符。
输入必须是可搜索的。
我应该如何构建数据库才能在灵活性和性能之间取得良好的平衡?例如我可以...
- 设置字符串大小的上限并影响性能和可用性。
- 为各种尺寸范围创建多个表,并通过表名和 ID 的组合来标识每个项目(因此我需要一个具有唯一 ID、表名、特定于表的 ID 的中心表)。
- 将每个输入分解为其各个组成部分(即单词)并分别存储这些单词,以及将每个语句映射到一系列单词 ID 的关系……
我确信还有其他选择。
答案1
我猜这可能稍微取决于你的数据库引擎,但更有可能的是它有一个“文本”字段(而不是“Varchar”或“Char”),适合保存不同大小的文本数据。本质上这是你的选项 #1。
如果它将在 MySQL 中,那么您有一个可用的 Text 或 Blob 字段:http://dev.mysql.com/doc/refman/5.6/en/blob.html