MySQL不知道,也不需要知道关系是1-1还是1-many。
没有SQL支持多对多关系,所有SQL都需要一个中间表,该表将多对多关系拆分为2个单独的1对多关系。
区别在于控制关系的逻辑,即编写的代码。
通过使表共享相同的主键来维持1-1关系。
用辅助表声明该PK作为指向其他表PK的外键。
Table chinese_mother (id integer primary key,name....Table chinese_child (id integer primary key,name ........,foreign key (id) references chinese_mother.id
关系的方向
1 -> manyvs
many <- 1由链接字段的位置确定。
通常每个表都有一个唯一
id的链接字段称为
tablename_id。
其中具有链接字段的表
many在关系的一侧,另一表在
1一侧。
每个用户可以有多个位置,但是每个位置只能有一个用户。
Table userid: primary keyname...........Table locationid: primary keyuser_id foreign key references (user.id)xy.......
通过将链接字段放在
location表中,您可以强制执行操作,因此一个位置只能有1个用户。但是,用户可以有许多位置。


![一对多MySQL [重复] 一对多MySQL [重复]](http://www.mshxw.com/aiimages/31/415324.png)
