2011-09-17 9 views
0

私はテーブルPersonを持っています。 1人は同じテーブルから多くの兄弟を持つことができます。私は再帰的な関係をする場合、私は兄弟を1つだけ追加することができますので、この設計を行う方法を理解するのは難しいです。再帰を伴うデータベース設計

表:PersonId、LastName、FirstName。

お願いします!

答えて

3

兄弟関係には多くのものがあるため、関係にある各兄弟の個人IDという2つの列を持つSIBLINGという2番目の表が必要です。

PERSON 
+----------+--------------+--------------+ 
| PersonId | Last Name | First Name | 
+----------+--------------+--------------+ 
| 1  | Abc   | Def   | 
| 2  | Ghi   | Def   | 
| 3  | Jkl   | Stu   | 
| 4  | Mno   | Def   | 
| 5  | Pqr   | vwx   | 
+----------+--------------+--------------+ 

SIBLING 
+-----+-----+ 
| Id1 | Id2 | 
+-----+-----+ 
| 1 | 2 | 
| 1 | 4 | 
| 2 | 4 | 
| 3 | 5 | 
+-----+-----+ 

ここで、SIBLINGは「結合テーブル」または「関連テーブル」と呼ばれることがあります。そのPKはテーブル全体(複合PK)であり、各列はFKからPERSON.PersonIdです。

+0

大丈夫です。わかった。関係についてはどうですか?それは2つの関係になるのだろうか?同じ鍵から? 2番目のテーブルはPKを2つの列から構成しますか? – user194076

+0

回答が更新され、SIBLINGテーブルが表示されます。 –

関連する問題