承認のために私のアプリケーションにロールシステムを実装する必要があります。我々のシステムには約5種類の役割があります。enumとロールを格納するための別のテーブル
我々は2つのオプションを持っているこれらの役割を維持するために、
代替#1
1.Createレールの役割モデルで列挙型、
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クエリなど)を持つ誰でも利用できることを意味しますが、パフォーマンスの観点から列挙型を好む。代替案3は両方を行うことですが、すべての基盤をカバーしますが余分な作業を追加します。 –
私は、アプリケーションコードを変更して配備することなく、新しい役割を追加する柔軟性を与えるので、2番目のアプローチをお勧めします。また、エンティティを明確かつ分離した状態に保つことは常に有効です。 – money