MySQL DB为字段的多个数据

时间:2015-07-14 05:08:41

标签: php mysql

也许我从来没有在正确的地方搜索过,但我常常想知道在一个字段中存储多个数据的最佳做法是什么,而且我从未找到过我可以使用的答案。

让我用一个例子来说清楚。

假设我在user_table

中有一个“hobbys”字段

当用户注册时,他想将tennisvideo gamepiano添加到他的个人资料中。

是否更好:

  1. 为每个爱好创建不同的字段,例如:hobby_id_1, hobby_id_2, hobby_id_3

  2. 或者创建一个名为hobbys的单个字段并插入用逗号分隔的数据? hobbys_id => 1,4,5 (这个解决方案实际上是可行的吗?)

  3. 然后当我们想要更新这些数据并添加一个新的爱好时,我们该怎么做?

    非常感谢任何小帮助。

    提前谢谢你:)

1 个答案:

答案 0 :(得分:6)

这属于多对多关系。

为了存储多对多关系,需要主要存储每个关系的主键(ID)的中间表。在你的情况下,

  

users_table(user_id,firstname,...)

     

hobbies_table(hobby_id,姓名,...)

     

users_hobbies_table(ID,USER_ID,hobby_id)

Here是一个更详细的解释。