5

質問

承認および認証ロジックが構築された User モデルがあります。

これで、3 種類のユーザーがいることがわかりました。それぞれについて異なる情報を保存したいと思います。

Railsでこれを処理する最良の方法は何ですか?

現在の読書に基づく考え

私は STI を見てきましたが、私が読んだ内容から、私のデータベースに多くの NULL フィールドが存在することになるため、これは不適切であると感じています。

理想的には、3 つのユーザー タイプのそれぞれに対して認証/承認ロジックを複製したくないと考えています。

各ユーザーは、アプリケーション内でさまざまな機能も使用できます。

4

2 に答える 2

1

ポリモーフィックな関連付けを使用しusersて、すべてのタイプのユーザーが持つデータでテーブルを作成し、他のデータを別のテーブルに入れることができます。このトピックをカバーするRailscast のエピソード。

于 2013-02-08T00:15:18.983 に答える
0

これを行う方法はたくさんあります。これが1つのアプローチです:

さまざまなタイプのユーザーについて考える代わりに、ユーザーが持つ役割について考えることができます。

たとえば、ユーザーが肉屋、パン屋、または燭台メーカーである可能性がある場合、、、、、の4つのテーブルを持つことがusersできbutchersます。後者の3つの役割テーブルには、それぞれ1つの列があります。それらはユーザーに「属します」。bakerscandlestick_makersuser_id

特定のユーザーが1つの役割のみを持つように強制する必要がある場合は、アプリケーションでそれを行う必要があります(このデータベーススキーマでは、1人のユーザーに複数の役割が許可されるため)。

この方法は、これらの役割テーブルに属するものがたくさんある場合に適しています。そうでない場合は、テーブルにNULL列をいくつか残しても、usersおそらくあなたを殺すことはありません。

于 2013-02-08T00:07:08.770 に答える