数据库设计备忘录,没什么新鲜的,只是作为自己的一个备忘~
1、关系: 1:1,1:N,N:N
2、注意在使用多对多关系的时候,由于关系型数据库的限制,我们必须建立一个中间表,用来表明两者之间的关系
3、具体的原因是数据库中的表的主键应该是唯一的,但是如果在两个存在多对多关系的数据表之间表明两者之间的关系的话,就不能够保证数据主键的唯一性了,比如说:书籍和作者之间的关系,我们假设他们之间是多对多的关系,一本书籍可以有多个作者,一个作者可以写多本书籍,如果我们是用两个表来表明他们之间的关系,结构如下:
书籍表:
主键 作者外键 名称 等其它属性
作者表:
主键 书籍外键 姓名等其它属性
如果我们要向表中存入数据,那么就会如下所示:
书籍表:
1 1 应用Rails进行敏捷Web开发
1 2 应用Rails进行敏捷Web开发
作者表:
1 1 Dave Thomas
2 1 David Heinemeier Hansson
这样就出现问题了,书籍表中出现了重复的主键,这个可是不行的哦
如果加入一个中间连接表,那么问题就解决了,书籍表和作者表只管负责存储他们各自的信息,不需要存储他们的关系信息,关系信息让连接表进行存储就好了~,表的结构如下:
书籍表:
主键 名称 等其它属性
1 应用Rails进行敏捷Web开发
2 Ant使用手册
作者表:
主键 姓名等其它属性
1 Dave Thomas
2 David Heinemeier Hansson
连接表:
主键 书籍外键 作者外键
1 1 1
2 1 2
这样,问题就解决了~