以下是我的情况:
情况:
我有用户,每个用户都有多个类别的多个值。
我看到它的方式我有两个选择:
予。创建一个新表'值':
user_ID category value
... ... ...
5 1 aaa
5 1 bbb
5 2 ccc
5 2 ddd
5 2 eee
6 1 xxx
6 2 yyy
6 1 zzz
II。在我与用户的实际表格中 - “用户”:
user_ID (unique) values
5 aaa,bbb$$ccc,ddd,eee
6 xxx,zzz$$yyy
...我将值保存为文本并使用','除以值和'$$'划分类别进行解析。
到目前为止,我一直在做一些小事情,但是现在我期待这个数据库的很多值和类别,我想知道哪个会给我更少的服务器负载 - 拥有一个非常庞大的mySQL数据库表和在每个页面上浏览它以查看哪些值属于当前用户;或者从一个相对较小的表中获取所有且只有他的值,但是每次使用PHP解析字符串以使其可用?
答案 0 :(得分:4)
第一种方法 - 就是构建关系数据库的方法。您还可以获得索引的额外好处,即使使用相当大的数据集,也可以快速提高索引。
此外,它允许从另一个方向查询数据 - 获取类别2等于'eee'的所有用户
答案 1 :(得分:0)
将未知数量的数据插入到字段中是一个非常糟糕的主意,因为您首先不知道如何标注它。此外,您的数据库无法以任何有用的方式对其进行索引,并且性能会随着系统的增长而降低。
将类别和值放在一个单独的表中可以很好地扩展,就像adam已经说过的那样,是关系数据库的全部内容。
您可能想要谷歌“数据库规范化”并浏览一些结果以获取更多信息。