相关疑难解决方法(0)

循环外键引用是否可以接受\如何避免它们?

在外键字段上的两个表之间进行循环引用是否可以接受?

如果没有,如何避免这些情况?

如果是这样,如何插入数据?

以下是(在我看来)可以接受循环引用的示例:

CREATE TABLE Account
(
    ID INT PRIMARY KEY IDENTITY,
    Name VARCHAR(50)
)

CREATE TABLE Contact
(
    ID INT PRIMARY KEY IDENTITY,
    Name VARCHAR(50),
    AccountID INT FOREIGN KEY REFERENCES Account(ID)
)

ALTER TABLE Account ADD PrimaryContactID INT FOREIGN KEY REFERENCES Contact(ID)
Run Code Online (Sandbox Code Playgroud)

rdbms foreign-key database-design

38
推荐指数
2
解决办法
4万
查看次数

SQL中具有总参与约束的多对多关系的实现

我应该如何在 SQL 中实现以下实体关系图中描述的场景?

具有总参与约束的多对多关系

如图所示,每个A实体类型出现都必须与至少一个 B对应项(由双连接线表示)相关,反之亦然。我知道我应该创建以下三个表:

    CREATE TABLE A
    (
        a INT NOT NULL,
        CONSTRAINT A_PK PRIMARY KEY (a)
    );

    CREATE TABLE B
    (
        b INT NOT NULL,
        CONSTRAINT B_PK PRIMARY KEY (b)
    );

    CREATE TABLE R
    (
        a INT NOT NULL,
        b INT NOT NULL,
        CONSTRAINT R_PK      PRIMARY KEY (a, b),
        CONSTRAINT R_to_A_FK FOREIGN KEY (a)
            REFERENCES A (a),
        CONSTRAINT R_to_B_FK FOREIGN KEY (b)
            REFERENCES B (b)
    );
Run Code Online (Sandbox Code Playgroud)

但是,如何实现总参与约束(即,强制执行其中之一的每个 …

erd database-design

17
推荐指数
2
解决办法
1万
查看次数

标签 统计

database-design ×2

erd ×1

foreign-key ×1

rdbms ×1