我有一个问题,所以有两个表:
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_id
和destination_id
必须引用帐户表,因为每个操作都应包含帐户来源,而不是目标帐户。
如果我在操作表中将source_id
设置为引用Account表的外键。如何在destination_id
和帐户表之间建立正确的关系?
我相信它应该在第三个表格中,但我无法弄清楚如何以适当的方式组织它。