SQL关系与同一个表的2个外键

时间:2017-01-31 15:51:53

标签: mysql foreign-keys relation

我想创建一个包含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)
);

那可行,但

  1. 我可以创建含糊不清的记录,只需反转national1和nation2值,如:

    1 USA RUSSIA 0 
    2 RUSSIA USA 1
    
  2. 我无法进行有效的查询,例如

    SELECT nation1.name,nation2.name,relation.type
    FROM nation.relation
    WHERE relation.type = "0"
    AND nation.name = "USA"
    AND nation.id = relation.nation1
    
  3. 因为“USA”可以在“nation2”之下

    我如何解决这两个问题?

0 个答案:

没有答案