データベースにm:m関係データを格納するにはどうすればよいですか?m:m realtionshipをデータベースに格納するにはどうしたらいいですか?
mがm個の言語を知っており、m個の言語が任意の数の人によって分かっていると仮定します。
任意の数の人が任意の数の言語を知ることができ、任意の数の言語を異なる人数で知ることができます。
データベースにm:m関係データを格納するにはどうすればよいですか?m:m realtionshipをデータベースに格納するにはどうしたらいいですか?
mがm個の言語を知っており、m個の言語が任意の数の人によって分かっていると仮定します。
任意の数の人が任意の数の言語を知ることができ、任意の数の言語を異なる人数で知ることができます。
3のテーブル..通常、このようなものは、3つのテーブルで行われ
Person (PersonId)
Language (LanguageId)
Person_Languages (Id,PersonId,LanguageId)
多対多リレーションシップは、ジャンクション・テーブルで最もよく格納されます。あなたのケースでは
http://www.tomjewett.com/dbdesign/dbdesign.php?page=manymany.php
これはPERSONIDと言語IDの両方に外部キーを持っているでしょうPersonLanguage
と呼ばれます。
PersonテーブルとLanguageテーブルの両方にPersonLanguageテーブルとの1対多の関係があります。
PersonIdとLanguageIdに複合主キーを持たせることも、自動インクリメント番号を含む別のPersonLanguageId列を作成することもできます。
:
人々(ID、名前、など)
言語(ID、名前など)
音声言語(peopleID、languageID)
...ここでSpokenLanguagesは、外国人のキーを使用して各自を話す言語に関連付ける関連付けテーブルです。
Grr - 人の人がいっぱいのテーブル - もし私が手にしていたら、私はコーディングの標準ハンドブックであなたを鼓舞します! – BonyT
@BonyT:ほとんど「コーディング基準」、より個人的な好み(http://stackoverflow.com/questions/338156/table-naming-dilemma-singular-vs-plural-names)...しかし私は変更しましたそれはとにかくあなたが良く感じるように) – StevieG
thankyou - 私は今はるかに良く感じる:) – BonyT