在数据库中存储一对多列的最佳方法

ᴀʀᴍ*_*ᴍᴀɴ 2 mysql sql database fieldtype

我的users数据库中有一个表,有三种用户角色 - 经理(管理员),专家和学生.

我已经尝试将他们的角色存储roleusers表中的列中,但我的问题是存储它的最佳方法是什么?

例如,我应该使用数字 - 1表示管理员,2表示专家,3表示学生.或者只有一个字符 - 管理员为"A",专家为"E",学生为"S"?或管理员等完整字符串'admin',或者什么?

编辑

伙计们,我想要最有效率的方式.有些人告诉我要有另一张桌子,但这种关系并不多,这是一对多,因为用户只能有一个角色.

And*_*rew 5

您可能希望有一个单独的联结表,例如user_roles,它将具有列:id,user_idrole_id.这样,每个用户将来可以拥有多个角色,即使现在他们只有1个角色.

role_id将指向新roles表中的角色,该表可以包含与角色关联的所有数据.

或者,如果您真的不想要联结表,那么只需将其role_id直接放入您的users表中即可.

查找数据库"规范化".基本上,如果您有一组特定的数据将在列中重复,您可能希望将其放在自己的表中.

  • 这在今天可能是正确的,但除非您能保证它永远保持正确,否则请遵循此答案中的建议。 (2认同)