我对MySQL的经验非常基础.简单的东西很容易,但我遇到了需要更多知识的东西.我需要一个存储一小部分单词的表.存储的单词数量可以是1到15之间的任何值.后来,我打算用这些单词在表格中搜索.我考虑过几种不同的方法:
A.)我可以用15个字段创建数据库,只要数据小于15就填充空值.我真的不喜欢这个.这看起来效率很低.
B.)另一种选择是仅使用单个字段,并将数据存储为逗号分隔列表.每当我回到搜索时,我都会在场上运行正则表达式.再次,这似乎非常低效.
我希望这两个选项有一个很好的替代方案.任何建议将非常感激.
-谢谢
C)使用正常形式 ; 使用适当键的多行.一个例子:
mysql> SELECT * FROM blah; +----+-----+-----------+ | K | grp | name | +----+-----+-----------+ | 1 | 1 | foo | | 2 | 1 | bar | | 3 | 2 | hydrogen | | 4 | 4 | dasher | | 5 | 2 | helium | | 6 | 2 | lithium | | 7 | 4 | dancer | | 8 | 3 | winken | | 9 | 4 | prancer | | 10 | 2 | beryllium | | 11 | 1 | baz | | 12 | 3 | blinken | | 13 | 4 | vixen | | 14 | 1 | quux | | 15 | 4 | comet | | 16 | 2 | boron | | 17 | 4 | cupid | | 18 | 4 | donner | | 19 | 4 | blitzen | | 20 | 3 | nod | | 21 | 4 | rudolph | +----+-----+-----------+ 21 rows in set (0.00 sec)
这是我在其他问题中发布的表格group_concat
.您会注意到K
每行都有一个唯一的键.还有另一个grp
代表每个类别的键.剩下的字段代表一个类别成员,每个类别可以有不同数量的这些.