次のようなさまざまなカテゴリのユーザーが存在する階層があります
- スタッフ管理者
- 教師
- 両親
- 学生
それらをすべて1つのデータベーステーブルに入れることを考えていましたusertable
しかし、すべてのカテゴリはそれぞれ異なる属性になり、生徒には親もいます。SO独自のユーザーテーブルとの多対多の関係があります。
しかし、異なるテーブルを作成すると、ログインプロセスは人によって異なります。
どのように行けばいいですか
次のようなさまざまなカテゴリのユーザーが存在する階層があります
それらをすべて1つのデータベーステーブルに入れることを考えていましたusertable
しかし、すべてのカテゴリはそれぞれ異なる属性になり、生徒には親もいます。SO独自のユーザーテーブルとの多対多の関係があります。
しかし、異なるテーブルを作成すると、ログインプロセスは人によって異なります。
どのように行けばいいですか
ユーザーはすべて、ユーザー名、パスワードなどの共通の詳細を共有するため、必要なuser
テーブルは 1 つだけです。これには実際にFOSUserBundleを使用する必要があります。異なるタイプのユーザーが異なる固有の詳細セットを持っている場合、ユーザー タイプごとに追加のテーブルを作成し、外部キーを使用してuser
テーブルから新しいテーブルにユーザーをリンクすることをお勧めします (おそらく、 などparent_profile
の名前が付けられますstudent_profile
)。
ユーザーの階層に関しては、ロールを使用する必要があります。Symfony2 のドキュメントには、この件に関して必要な情報がすべて含まれています。
ユーザーを相互にリンクする必要がある場合は、1 対 1 の自己参照と1 対多の自己参照の関連付けに対する Doctrine 2 のサポートを読んでください。ユーザー ユーザー タイプに個別のエンティティ クラスを使用する場合は、通常の 1 対 1 および 1 対多の関連付け手法を使用できます。
お役に立てれば。