我必须在我的应用程序中实现一个授权角色系统。我们的系统中有大约5种角色。枚举vs单独的表来存储角色?
为了维持这些角色,我们有2种选择,
替代#1
1,创建在轨榜样枚举,
enum role: {super_admin: 1, translator: 2, approver: 3, sales_admin: 4, marketing_admin: 5, guest: 6}
2.In角色表,现在我们将有ID user_id role_id
替代品#2
1.创建2个模型Role and Role_User
。
角色表将只包含ID | role_name
和ROLE_USER将包含ID | user_id | role_id
这应该是首选?
我不认为这有一些具体的规则。这是对特定系统和个人偏好的更多估计。就个人而言,我更喜欢单独的表,而不是随时关注枚举。 –
存储在数据库上意味着任何拥有SQL(报告,独立SQL查询等)的人都可以使用这些数据,但我更喜欢从性能角度来看enum。选择3是做两个,它涵盖所有基地,但增加额外的工作。 –
我建议采用第二种方法,因为它可以让您灵活地添加新角色而无需更改和部署应用程序代码。保持实体清晰分离总是好的。 – money