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

1対多のMySQL

    MySQLは、関係が1-1であるか、1対多であるかを認識しておらず、知る必要もありません。
    SQLは多多関係をサポートしていません。すべて、多多関係を2に分​​割する中間テーブルが必要です。個別の1-多数。

    違いは、関係を制御するロジックにあります。これは、作成するコードにあります。
    1対1の関係は、テーブルが同じ主キー(PK)を共有することによって維持されます。
    他のテーブルPKを指す外部キーとしてPKを宣言するセカンダリテーブル。

    Table chinese_mother (
    id integer primary key,
    name....
       
    
    Table chinese_child (
    id integer primary key,
    name ....
    ....,
    foreign key (id) references chinese_mother.id
    

    関係の方向1 -> many vsmany <- 1 リンクフィールドの場所によって決まります。

    通常、すべてのテーブルには一意のidがあります リンクフィールドはtablename_idと呼ばれます 。
    リンクフィールドが含まれるテーブルはmany 関係の側では、もう一方のテーブルは1にあります サイド。

    Table user
    id: primary key
    name......
    .....
    
    Table location
    id: primary key
    user_id foreign key references (user.id)
    x
    y
    .......
    

    リンクフィールドをlocationに配置する テーブルでは、場所に1人のユーザーしか持てないように強制します。ただし、ユーザーは多くの場所を持つことができます。



    1. PL / SQL開発に最適なツールボックスは何ですか?

    2. ISJSON()SQL Server(T-SQL)の例

    3. 更新時に変更のないタイムスタンプ

    4. SQLiteの英数字を含む行を返す