两个表之间的关系

时间:2017-10-12 20:33:36

标签: mysql sql

我有一个问题,所以有两个表:

CREATE TABLE Account (
    id INT NOT NULL AUTO_INCREMENT,
    user_id INT NOT NULL,
    name VARCHAR(35) NOT NULL,
    balance DOUBLE NOT NULL,

    PRIMARY KEY (id),
    FOREIGN KEY (user_id) REFERENCES User (id)
);

CREATE TABLE Operation (
    id INT NOT NULL AUTO_INCREMENT,
    source_id INT NOT NULL,
    destination_id INT NULL,
    operation_type VARCHAR(20) NOT NULL,
    date DATE NOT NULL,
    total DOUBLE NOT NULL,

    PRIMARY KEY (id),
    FOREIGN KEY (source_id) REFERENCES Account (id)
    -- Wrong!!!
    FOREIGN KEY (destination_id) REFERENCES Account (id)
);

字段source_iddestination_id必须引用帐户表,因为每个操作都应包含帐户来源,而不是目标帐户。

如果我在操作表中将source_id设置为引用Account表的外键。如何在destination_id和帐户表之间建立正确的关系? 我相信它应该在第三个表格中,但我无法弄清楚如何以适当的方式组织它。

0 个答案:

没有答案