【问题标题】:Varying size list不同大小的列表
【发布时间】:2012-06-01 00:57:15
【问题描述】:
我的问题是我有一堆“对象”。这些对象可以有一个最多包含 3 个单词的单词列表,也可以没有。对于 mysql,每个对象我已经有一行,我试图弄清楚如何合并这些单词。以下是我的方法:
1:每个单词我有 3 个额外的列。但是,当没有 3 个单词时,这会留下空的、多余的单元格。
2:有 1 列,每个单词由该列中的空格分隔。这在没有单词时会留下一个冗余单元格,并且还需要额外的处理
3:创建另一个表来保存带有引用编号的单词,该编号引用它对应的对象。这需要额外的查询,但在我看来冗余度最低。
建议?
【问题讨论】:
标签:
mysql
list
optimization
redundancy
【解决方案1】:
number #3 有一个名为 words (id_word,word) 的表和另一个名为 object_words (id_object,id_word) 的表,它们具有 innodb 表类型,以确保诚信
【解决方案2】:
我总是会使用额外的桌子选择#3。这确保了将来如果您需要使用 SQL 对所有对象进行任何“单词”搜索或更改结构以添加更多单词或减少单词,那么不会有任何问题。此外,这些额外的查询对于 RDBMS 服务器的负担通常非常小。此外,所有其他选项也需要 PHP 进行某种处理(假设它是编码语言),这也会消耗一些 CPU 周期。但由于#3 将来会很好地扩展,我更愿意选择#3。