以下是我的情况:
情况:
我有用户,每个用户在多个类别中有多个值。
在我看来,我有两个选择:
I.创建一个新表“values”:
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
二。在我与用户的实际表中-“users”:
user_ID (unique) values
5 aaa,bbb$$ccc,ddd,eee
6 xxx,zzz$$yyy
…将值保存为文本,并用“,”分隔值和“$$”分隔类别对其进行分析。
到目前为止,我一直在用第二种方法做一些小事情,但是现在我希望这个数据库有很多值和类别,我想知道哪个会减少服务器负载——有一个非常大的mySQL数据库表,在每个页面上查看它,看看哪些值属于当前用户;或者只从一个相对较小的表中获取他的所有值,但每次都用PHP解析字符串以使其可用?
最佳答案
第一种方法-这就是关系数据库的构建目的。索引还有一个额外的好处,即使使用相当大的数据集,索引也能使它保持快速。
此外,它还允许从另一个方向查询数据-获取类别2等于“eee”的所有用户