簡単なことから始めて、管理したいすべての名詞に名前を付けます。それらはあなたのテーブル名です。
次に、追跡する可能性のある各名詞に関連するすべての形容詞について考えます。形容詞のグループがカテゴリに当てはまる場合は、関連するテーブル内に列を作成します。形容詞が常にすべての可能な名詞に適用される場合は、無視してください。データベースは、時間の経過とともに変化するデータを追跡することを目的としています。定数は保存しないことをお勧めします。
次に、見逃せない形容詞を考えてみましょう。誕生日リマインダーのオプトアウトを許可している場合、おそらく人の生年月日が失われる可能性があります。おそらく、あなたのクラブは誕生日志向のクラブであり、名前がないことは大混乱に等しいでしょう。
次に、必要な形容詞を見てください。単独で、または組み合わせて、表のエントリを特定するものをいくつか見つけます。人によっては、個人が名前で識別される場合があります。つまり、同一でない名前はすべて別の個人にアクセスし、同一の名前はすべて同じ個人にアクセスします。2 人のジョン スミスに会ったことがある場合、または結婚のために名前を変更したことがある場合、名前の列だけでは身元を特定する理想的な方法ではないことがすぐにわかります。識別フィールドのコレクションは、主キーと呼ばれます。
次に、名詞がどのように関連しているかを考えます。メンバーシップが個人と同じでない場合は、2 つを結合する必要があります。テーブルを結合するための基本的な手法は 3 つあります。また、後で適用するのに最適な高度な手法もあります。
1 つの X (人) は 1 つの Y (メンバーシップ) にのみ関連付けることができます。その場合、X テーブルと Y テーブルは 1 つのテーブルにマージする候補になる可能性があります。これを 1 対 1 の関係と呼びます。
1 つの X (個人) が多数の Y (メンバーシップ) に関連付けられている場合、Y (メンバーシップ) テーブルには、関連付けられている X (個人) の主キーへの外部キー参照が含まれている必要があります。これを 1:N の関係と呼びます。
多くの X (個人) が 1 つの Y (メンバーシップ) に関連付けられている場合、X (個人) テーブルには、関連付けられている Y (メンバーシップ) の主キーへの外部キー参照が含まれている必要があります。これを N:1 関係と呼びます
多くの X (個人) は、多くの Y (メンバーシップ) に関連付けられています。つまり、個人は特定のメンバーシップを持っている、グループ メンバーシップの一部である、マルチ メンバーシップ パッケージを購入している、および / または 1 つのメンバーシップしか持っていない可能性があります。この場合、構築された「リレーションシップ」テーブルを使用してリレーションシップを管理する必要があります。このテーブルには、X と Y の各プライマリ キーへの 1 つずつ、2 つの外部キー参照が含まれています。リレーションシップ XY (PersonMembership) テーブルの主キー。
テーブルを結合する方法は他にもありますが、基本的には、結合するテーブルの数を増やす最後の手法の拡張です。
これにより、良いスタートを切ることができます。また、自分が行う選択が、他の人が行う選択と同じではないことがすぐにわかるでしょう。これが、標準データベース テーブル セットがほとんどない理由です。基本的なフレームワークを起動して実行すると、関連するデータの 2 つのセットを常に同時に引き出す可能性があり、(そこまで行くと) パフォーマンスのルールのいくつかを破ることを検討する可能性があることがわかります。 . 最初からルールを破ろうとしないでください。ルールを破るタイミングを知るには、ルールに従う必要があります。そうすれば、目的を達成する際に何を失うかを知ることができ、実際の使用で導入された落とし穴を回避することができます。