当前位置:  开发笔记 > 编程语言 > 正文

MySQL设计具有动态数量的字段

如何解决《MySQL设计具有动态数量的字段》经验,为你挑选了1个好方法。

我对MySQL的经验非常基础.简单的东西很容易,但我遇到了需要更多知识的东西.我需要一个存储一小部分单词的表.存储的单词数量可以是1到15之间的任何值.后来,我打算用这些单词在表格中搜索.我考虑过几种不同的方法:

A.)我可以用15个字段创建数据库,只要数据小于15就填充空值.我真的不喜欢这个.这看起来效率很低.

B.)另一种选择是仅使用单个字段,并将数据存储为逗号分隔列表.每当我回到搜索时,我都会在场上运行正则表达式.再次,这似乎非常低效.

我希望这两个选项有一个很好的替代方案.任何建议将非常感激.

-谢谢



1> Jason S..:

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代表每个类别的键.剩下的字段代表一个类别成员,每个类别可以有不同数量的这些.

推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有