これまでの私の最大のアプリケーション用にデータベースを構成するためのガイダンスが必要でした。複数のユーザータイプで作成したアプリです。複数のユーザータイプのデータベース正規化
私は、多くのクライアントを持つコーチと潜在的に多くのコーチを持つクライアントの2種類のユーザーを持っていますが、現在は1つのみを持っていると言います。
どちらも、コーチとクライアントの共有、特定の物事 -
users (shared info)
column name | data type | details
-----------------|-----------|-----------------------
id | integer | not null, primary key
username | string | not null
email | string | not null
password_digest | string | not null
session_token | string | not null
私の最初に考えたのは二つの他のテーブル、1つの物件タイプ、および次の加入タイプとユーザーを持つことです。
type
column name | data type | details
-----------------|-----------|-----------------------
id | integer | not null, primary key
coach | string |
client | string |
ユーザータイプ
user_type
column name | data type | details
-----------------|-----------|-----------------------
id | integer | not null, primary key
user_id | integer | not null, foreign key (users)
type_id | integer | not null, foreign key (type)
私の質問はどこでコーチに関連付けられているuser_idsを保存するために最善だろう、です。
コーチには多くのクライアントがあります。別のテーブルが必要でしょうか?これはuser_typeのような既存のものの中のカラムとして最適でしょうか?
ありがとうございました!
これは理にかなっています。つまり、本質的にコーチとクライアントは別々のテーブルを持ち、両方がユーザーであり、クライアントとコーチのための結合テーブルを作成します。 –
No. 2つの別個のテーブル。結合テーブルはありません。 Clientテーブルには 'coach_id'カラムがあります。 – danielricecodes