2016-03-25 14 views
1

私はクライアントテーブルを持っていますが、個々のクライアントが親として設定したい別のクライアントとの関係を持ち、その場合、複数のクライアントから1つの親になる可能性があります。自分自身との関係を持つテーブル

これはおそらく10〜20%のレコードに適用され、残りのレコードはゼロに関連します。私は、クライアントIDと親IDを持つ子テーブルを考えています。

このタイプの関係は通常どおり処理されますか?

これはレガシーデータベースであり、一般的にこれらのケースでは列が追加されていますが、私はそれを正しく実行するのが遅れていないと考えています。

+0

この機能は階層データと呼ばれます。 –

答えて

1

各クライアントは、唯一の親が、次は大丈夫であることができた場合: -

ID ClientInfo1 ClientInfo2 ParentID 

Where ParentID = ID of the parent record. 

または複数の親を持つことができるならば、はい、あなたが別のテーブルをしたい

ClientID ParentID 

あなたが持つことができますこの方法各クライアントの複数の親

1から多対多の関係を検索し、どちらが正しいかを判断する必要があります。

+0

最初は私はそれを考えていましたが、ほとんどの場合関係がないので、parentIDは80〜90%のヌルになります – user1167777

+0

それは問題ではありません - あなたはJOINを使用している親を見つけるでしょう - それ自体でテーブルに加わることができますあなたの質問が正しく書かれていると仮定してNullを気にしてください。倍数の2番目のオプションでは、関係があるエントリだけがあるので、そこにnullはありません。 –

+0

http://sqlfiddle.com/#!9/afcd0/7 < - 1から多くへの私の意味 –

関連する問題