sql >> データベース >  >> RDS >> Mysql

MySQLでのmany:many関係のコーディングに関するアドバイスとフィードバックが必要です

    子供は2人以下の親を持つことができ、両方が特定の役割(母親と父親)を持ち、一方または両方の親が不明な状況が発生する可能性があります。

    したがって、これは実際の「多対多」の関係ではなく、実際には「多対0または1つまたは2つ」であり、このように自然に表すことができます(MotherID およびFatherID NULL可能):

    LastNameを入力した場合 両方のParent およびPlayer (またはあなたの場合は一般的なスーパークラス)、これは当然、親が子供とは異なる家系の名前を持っている状況もカバーします。

    次に、このように「親ごとの子」を簡単に取得できます( SQL Fiddle )...

    SELECT
        ParentID,
        Parent.FirstName ParentFirstName,
        Parent.LastName ParentLastName,
        PlayerID,
        Player.FirstName PlayerFirstName,
        Player.LastName PlayerLastName
    FROM
        Parent
        LEFT JOIN Player
            ON Parent.ParentID = Player.MotherID
            OR Parent.ParentID = Player.FatherID
    ORDER BY ParentId
    

    ...必要に応じて、アプリケーションコードのデータをピボットします。

    上記のモデルでは、Parent間の不一致が許容されます の性別とその母親/父親の役割。これを防ぎたい場合は、船外に出てこのようなことをすることができます...

    ...しかし、私は複雑にせず、最初のモデルに固執して、アプリケーションレベルでこれを実施したいと思います。



    1. MYSQLテーブルを永続的な方法でソートする方法は?

    2. DSTのためにOracleの日付比較が壊れています

    3. JPA:文字列をデータベースフィールドに永続化するにはどうすればよいですか、MYSQLテキストと入力します

    4. MySql-月の名前で並べ替え