我想创建一个包含2个外键的表,该外键引用同一个表的同一个字段:
我有“国家”表和表“关系”
2个国家形成了一种关系,如“美国和俄罗斯 中立”
我做了
create table relation(
id int(3) primary key,
nation1 int(3),
foreign key (nation1) references nation(id),
nation2 int(3),
foreign key (nation2) references nation(id),
type int(1)
);
那可行,但
我可以创建含糊不清的记录,只需反转national1和nation2值,如:
1 USA RUSSIA 0
2 RUSSIA USA 1
我无法进行有效的查询,例如
SELECT nation1.name,nation2.name,relation.type
FROM nation.relation
WHERE relation.type = "0"
AND nation.name = "USA"
AND nation.id = relation.nation1
因为“USA”可以在“nation2”之下
我如何解决这两个问题?