1

这是我的情况:

情况:

我有用户,并且每个用户都有多个类别中的多个值。

我看到它的方式有两个选择:

I. 制作一个新表“值”:

 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

二、在我与用户的实际表中 - '用户':

user_ID (unique)         values  
        5             aaa,bbb$$ccc,ddd,eee
        6             xxx,zzz$$yyy

...我将值保存为文本并用','划分值和'$ $'划分类别来解析它。

到目前为止,我一直在用第二种方式做一些小事情,但现在我希望这个数据库有很多值和类别,我想知道哪个会给我更少的服务器负载——拥有一个非常巨大的 mySQL 数据库表并通过它在每个页面上查看哪些值属于当前用户;还是从一个相对较小的表中获取所有且仅他的值,但每次都使用 PHP 解析字符串以使其可用?

4

2 回答 2

4

第一种方法——这就是建立关系数据库的目的。您还可以获得索引的额外好处,即使数据集相当大,它也能保持速度。

此外,它允许从另一个方向查询数据 - 获取类别 2 等于“eee”的所有用户

于 2011-06-19T22:02:55.490 回答
0

将未知数量的数据插入字段是一个非常糟糕的主意,因为您一开始就不知道如何对其进行标注。此外,您的数据库将无法以任何有用的方式对其进行索引,并且性能会随着系统的增长而下降。

将类别和值放在单独的表中可以很好地扩展,就像亚当已经说过的那样,这就是关系数据库的全部意义所在。

您可能想搜索“数据库规范化”并浏览一些结果以获取更多信息。

于 2011-06-19T22:08:06.540 回答