关系数据库中的1:M和1:N关系有什么区别?


回答 1:

SQL关系数据库支持两个主要的关系模型。

  • 1:M一对多数据模型1:1一对一数据模型

一对多表示表A中的每一行都与表B中的零个或多个行相关。例如,PERSON表在另一个表中有一些PHONE_NUMBERS,但某些PERSON可能根本没有电话号码行。 PHONE_NUMBERS表具有指向PERSON的FOREIGN KEYS。

-查找所有人及其电话号码。 SELECT * FROM PERSON JOIN PHONE_NUMBERS USING(PERSON_ID);

一对一表示表A中的每一行与参考表B中的零行或一行相关。例如,PERSON表具有ADDRESS字段,而STATE则与国家/地区中的参考州表匹配。 PERSON表具有将STATE指向STATE_CODES表的FOREIGN KEYS。

-查找所有人,并显示他们居住的州的全名。 从PERSON中选择P.PERSON_ID,P.HOUSE_NUMBER,P.STREET,P.CITY和S.STATE_NAME,并在加入后加入STATE_CODES(PERSON.STATE = STATE_ID);

零行和NULL值

一对一FOREIGN KEY列可以为NULL。这意味着该字段尚未确定。 例如,在有人设置该人的地址之前,上面的STATE列为NULL。

聚苯乙烯

我不知道1:N是什么意思。


回答 2:

1:M和1:N是关系数据库中两个表之间的常规一对多关系的简单替代表示法。 您可能还会看到此关系类型写为M:1或N:1。

两个表之间的一对一关系称为1:1。 类似地,M:N描述了多对多关系类型。


回答 3:

1:M和1:N是关系数据库中两个表之间的常规一对多关系的简单替代表示法。 您可能还会看到此关系类型写为M:1或N:1。

两个表之间的一对一关系称为1:1。 类似地,M:N描述了多对多关系类型。