私のアプリケーションには、顧客と従業員など、さまざまなプロパティ セットを持つ複数の種類のユーザーがいます。1 人のユーザーがこれらのロールの複数に属する場合があります。そこで、データベースの構造を次の (簡略化した例) にすることにしました。
users (contains the fields applicable to all different kinds of users)
id
username
email
customers (contains fields applicable to customer role)
id
user_id
shipping_address
employees (contains fields applicable to employee role)
id
user_id
salary
質問 1: これは、多くの異なるプロパティを持つユーザー ロールを処理する適切な方法ですか? 実際には、7 ~ 20 個のプロパティのセットを持つ 6 つの役割があります。一部の役割は従来の役割でさえありませんが、追加のプロパティのように退屈です。ユーザーが Facebook アカウントでログインする場合は、Facebook_account テーブルが適用されます。
質問 2: ORM (私の場合は Eloquent) を使用する場合、ロール モデル (顧客) にユーザー モデルを拡張させることは理にかなっていますか? 顧客オブジェクトをフェッチするとき、手動でマージすることなく、すべてのユーザーの顧客プロパティをまとめたいと思っています。