也许我从来没有在正确的地方搜索过,但我常常想知道在一个字段中存储多个数据的最佳做法是什么,而且我从未找到过我可以使用的答案。
让我用一个例子来说清楚。
假设我在user_table
当用户注册时,他想将tennis
,video game
和piano
添加到他的个人资料中。
是否更好:
为每个爱好创建不同的字段,例如:hobby_id_1, hobby_id_2, hobby_id_3
或者创建一个名为hobbys的单个字段并插入用逗号分隔的数据? hobbys_id => 1,4,5 (这个解决方案实际上是可行的吗?)
然后当我们想要更新这些数据并添加一个新的爱好时,我们该怎么做?
非常感谢任何小帮助。
提前谢谢你:)
答案 0 :(得分:6)
这属于多对多关系。
为了存储多对多关系,需要主要存储每个关系的主键(ID)的中间表。在你的情况下,
users_table(user_id,firstname,...)
hobbies_table(hobby_id,姓名,...)
users_hobbies_table(ID,USER_ID,hobby_id)
Here是一个更详细的解释。