【问题标题】:Proper way to create a table for a many-to-many relation为多对多关系创建表的正确方法
【发布时间】:2016-01-13 16:41:47
【问题描述】:

我是这方面的新手,所以请多多包涵。

假设我有两个表,TABLE_A 和 TABLE_B。

TABLE_A 有一个主键 PK_A,而 TABLE_B 有一个主键 PK_B。

TABLE_A 和 TABLE_B 之间存在多对多关系。

我用来尝试创建表来模拟这种关系的 SQL 字符串是:

CREATE TABLE many_to_many (
    PK_A CHAR(10)
    ,PK_B CHAR(10)
    ,CONSTRAINT FK_A FOREIGN KEY PK_A REFERENCES TABLE_A(PK_A)
    ,CONSTRAINT FK_B FOREIGN KEY PK_B REFERENCES TABLE_B(PK_B)
    ,CONSTRAINT PK PRIMARY KEY (
        PK_A
        ,PK_B
        )
    );

我的问题是:这种方法有效吗?

【问题讨论】:

    标签: sql many-to-many


    【解决方案1】:

    我已经多次使用这种方法,只要您确定要在表 A 的每个元素和表 B 的每个元素之间最多有一个关系,它就可以正常工作。

    【讨论】:

    • 请您进一步澄清一下吗?
    • 您编写的第三个约束意味着每对(PK_A,PK_B)只能有一行。我不知道你的用例是什么,但有时这不是你想要的。
    猜你喜欢
    • 2019-12-30
    • 1970-01-01
    • 1970-01-01
    • 2018-10-20
    • 1970-01-01
    • 1970-01-01
    • 2020-09-10
    • 1970-01-01
    • 2021-01-24
    相关资源
    最近更新 更多