关系表最佳实践

时间:2016-07-09 21:11:19

标签: mysql laravel eloquent

我正在构建一个应用程序,其中将运行一个mysql数据库,并在数据库中我将​​有一些关系表,但最近我一直在寻找不同的关系表在线不同我以前怎么做,基本上我没有什么是最好的练习并希望找到最好的方法,上面我留下一个小例子,说明我通常做的和其他在线例子:

我的做法:

users
- id
- role_id;
- email
- password


roles:
- id
- title

其他人的在线示例

users
- id
- email
- password

role_user:
- role_id
- user_id

roles:
- id
- title

基本上我的问题是在最佳实践和可扩展性方面哪一个更好?

3 个答案:

答案 0 :(得分:3)

这取决于您是否需要多对多或一对多的关系。在你的第一个例子中,这是一对多的关系。换句话说,用户最多只能有一个角色。在第二个示例中,用户可以拥有许多角色,角色可以应用于许多用户。

因此,如果您需要用户担任多个角色,请使用第二个示例。否则,你的第一个例子就好了。

答案 1 :(得分:1)

第二个通常在你需要一个单独的模块用于rbac功能时使用..这样,与角色相关的aspcted与用户身份验证模块没有内在联系。

您的解决方案是正式的正确但没有正确考虑设计aspctec保持模块分离..

答案 2 :(得分:0)

简单来说,如果你认为一个用户会有多个角色,那么' role_id' '用户'的列表格变得不足,所以,如果你确定一个用户无论如何只有一个角色,那么第一个就好了

否则选择第二个!