私は家族の関係をモデル化することになっているプログラムのデータベースを作成しています。 例: XはYの父、YはXの息子
つまり、各メンバーに関するすべての情報を含むMembersテーブルがあるので、 Membersテーブルとそれ自体の間に多対多の関係を作成して、 Member_Memberブリッジテーブルの列が複合キーとして「FK_FromID、FK_ToID」になるようにすることを考えました。この正しい?)およびRelationTypesテーブルへの外部キーとしての"FK_RelationType"は、リレーションタイプ "Father、mother、son、daughter"を持ち、2つのリレーションはMembersテーブルからこれらの2つの外部キーに1対多になります。
私の問題は、カスケードを選択した場合に削除するときにサイクルを作成することです。これは、メンバーを削除すると、Member_Memberブリッジの関連レコードへの削除パスが2つあるためです。プログラムでは、父関係を挿入するたびに、 Member_Memberテーブルのsonリレーションも、カスケードを有効にする方法または回避策があります。これにより、メンバーを削除するたびに、toまたはfrom外部キー列に記録されているかどうかに関係なく、 Member_memberの関連レコードが削除されます。
だから、私は何をすべきかわかりません、これはそもそも正しいデザインですか、それとも何ですか?、サイクリングについて私は何をすべきか、また同じ問題のより良い設計は、私が2つの当事者間のどのような関係を指定する必要があることを知っているべきだと思いますか
助けてくれてありがとう、そして悪い英語のビショイをごめんなさい