MySQL:多值字段与新表

时间:2014-10-20 09:26:50

标签: mysql

多值字段与新关系表有哪些优缺点?

让我们说一张包含所有者姓名的表和所有者拥有的狗的类型

Owner Table
id     name    dogs
1      Jack    3,4,7

Dog Table
id    name
1     Poodle
2     Labrador
3     ....

为了找出杰克有什么,我可能会分开,','在dog字段中使用服务器端语言并从狗表中检索每个id。

如果我使用新的关系表怎么办:

Owner Dog Table
owner_id      dog_id
1             3
1             4
1             7   

我读过的书应避免使用多值字段,但在测试性能时,多值字段更快。除了外键约束的好处和使用mysql本身操作的简易性(没有服务器端脚本来解码),我为什么还要使用关系表?即使在大数据上,性能差异也不重要吗?

1 个答案:

答案 0 :(得分:0)

多值字段是创建关系芯片的一种很懒惰的方式。但由于您要为它们进行查询,因此建议使用3个表。对3个表进行查询比对多值字段进行查询要容易得多。

这一切都在this网站上完美描述。