我的做法:
users
- id
- role_id;
- email
- password
roles:
- id
- title
其他人的在线示例
users
- id
- email
- password
role_user:
- role_id
- user_id
roles:
- id
- title
基本上我的问题是在最佳实践和可扩展性方面哪一个更好?
答案 0 :(得分:3)
这取决于您是否需要多对多或一对多的关系。在你的第一个例子中,这是一对多的关系。换句话说,用户最多只能有一个角色。在第二个示例中,用户可以拥有许多角色,角色可以应用于许多用户。
因此,如果您需要用户担任多个角色,请使用第二个示例。否则,你的第一个例子就好了。
答案 1 :(得分:1)
第二个通常在你需要一个单独的模块用于rbac功能时使用..这样,与角色相关的aspcted与用户身份验证模块没有内在联系。
您的解决方案是正式的正确但没有正确考虑设计aspctec保持模块分离..
答案 2 :(得分:0)
简单来说,如果你认为一个用户会有多个角色,那么' role_id' '用户'的列表格变得不足,所以,如果你确定一个用户无论如何只有一个角色,那么第一个就好了
否则选择第二个!