cmd*_*cmd 5 database-design model ruby-on-rails single-table-inheritance
我有一个带有授权和身份验证逻辑的用户模型。
现在我意识到我有三种不同类型的用户。我想存储有关它们每个的不同信息。
在Rails中处理此问题的最佳方法是什么?
我看过STI,但是从我的阅读中发现这是不合适的,因为最终我的数据库中会有很多NULL字段。
理想情况下,我不想为三种用户类型中的每一种重复验证/授权逻辑。
每个用户在应用程序中还将具有不同的功能。
有很多方法可以做到这一点。这是一种方法:
您可以考虑用户具有的角色,而不是考虑不同类型的用户。
例如,如果用户可能是屠夫、面包师或烛台制造商,则您可以有四个表:users、butchers、bakers、candlestick_makers。后三个角色表各有一user_id列;它们“属于”用户。
如果您需要强制特定用户只有一个角色,则必须在应用程序中执行此操作(因为此数据库架构允许单个用户拥有多个角色)。
如果有很多内容属于这些角色表,则此方法很好。如果没有,在users表中保留一些 NULL 列可能不会杀死你。
| 归档时间: |
|
| 查看次数: |
1407 次 |
| 最近记录: |