それ自体に対して 1 対多の関係を持つことができるエンティティのテーブルをどのように構築しますか? 具体的には、動物の繁殖を追跡するアプリに取り組んでいます。各動物には ID があります。サイアー ID とデイム ID もあります。そのため、種牡馬または貴婦人からその子孫まで、1 対多にすることが可能です。私は次のような傾向があります:
ID INT NOT NULL PRIMARY KEY
SIRE_ID INT
DAME_ID INT
購入して繁殖用ストックに追加された動物については null 値を記録し、残りについては表に ID を記録します。
そう:
- この種の関係のモデリングについて説明している記事/Web ページを教えてもらえますか?
- ID は INT またはある種の文字列にする必要がありますか? INT の NULL は、動物がデータベースに親を持たないことを示しますが、特別なフラグ値を持つ文字列を使用して同じことを示すことができます。
これは、2 つのテーブルを使用してモデル化するのが最適でしょうか? 動物用の 1 つのテーブルと、親族関係のみを示す別のテーブルを意味します。
動物
ID INT NOT NULL 主キー
親族関係
ID INT NOT NULL 主キー 外部キー
SIRE_ID INT 主キー 外部キー
DAME_ID INT 主キー 外部キー
上記についてお詫び申し上げます。私の SQL は錆びています。思っていることが少しでも伝われば幸いです。