管理多值属性SQL

时间:2016-07-22 14:52:38

标签: mysql sql

我正在尝试创建用户注册系统。在注册过程中,用户可以选择不同的爱好。因此,我必须管理多值属性'爱好'。 users表将字段'username'(varchar)作为主键。我在考虑创建另一个名为“爱好”的表,如何将每个用户连接到它的hoobies?有什么建议吗?

三江源

1 个答案:

答案 0 :(得分:1)

你需要3张桌子。首先建议将主键更改为userID(建议使用整数,自动增量)而不是用户名。名称不能很好地用作键。

第二个表是userhobby表,它将userID链接到一个爱好。我建议将hobby_id和user_id作为你的两个字段...它是一个映射表,如果你想让一个用户能够删除一个爱好但你不想要的话,它实际上只需要包含ID和可能的日期字段/有效字段删除实际数据。使用2个字段作为主键user_id + hobby_id。

第三个也是最后一个表是将hobby_id映射到实际爱好的爱好。 Hobby_id(主键,整数和自动增量首选),然后是一个爱好名称和您想要为该爱好指定的任何信息。

有意义吗?该设置将允许用户拥有多个爱好并记住冗余数据