0

roles最大で 5 つの異なるロールが存在できる場合、ユーザー テーブルに埋め込みドキュメント フィールドを使用することは実行可能でしょうか? 私がこれを尋ねる理由は、そのフィールドに配列型を使用しても同じことができると信じているからです。私がロール フィールドを使用するのは、ユーザーが Web サイトの特定のページや機能にアクセスできるかどうかを確認するときだけです。ここで何か不足していますか?ありがとう

4

1 に答える 1

0

どちらのアプローチも間違っているとは思いません。データがどのように保存されるかよりも、モデルをどのように見せたいかにより関連性があると思います。それは、保持したいロールタイプ以外の情報 (ある場合) と、ユーザーのロールをどのようにチェックするかによって異なります。

単純にロール (管理者、ユーザー、モデレーターなど) のリストを保存する場合は、シリアル化された配列属性で十分でしょう。一方、役割にさらに多くの情報が格納されている場合 (各役割に付与されたアクションや権限など)、UserRoleモデルを個別に構築してモデルに埋め込むと効果User的です。

各ユーザーが 1 つ以上のロールのメンバーになることができるロールのリストを単に保存する場合は、実際には別の非常に優れたオプションがあります。実際にはビットマスクを使用できます。このアプローチを使用すると、ユーザーの役割は単純な整数として格納され、Ruby のビット演算子のいくつかを使用してその値を一連の役割にマップします。

http://railscasts.com/episodes/189-embedded-association?view=asciicast

于 2012-10-25T19:01:21.543 に答える