想写这个是因为自己刚好在尝试建一个数据库,而数据库的各个表之间的关系不是很清楚,没有形成一个整体的关系,所以就尝试着将数据库形成一个整理的关系表,我
敢说很多跟我一样的同学原来做课程设计,肯定就是随便建几个table,然后能够用程序,也就是你的软件系统对你的各个table进行增删查改,以为数据库就建好了,已经ok了。
其实这一半的事情都没有做到,我们说一个系统的数据库是一个整体,虽然我不是很懂那些范式神马的,但是这个也是我自己的一点经验只谈。
肯定有很多用SQL Server的图形界面设计数据库的 ,可以用你数据库的表生成你的关系数据库图, 你会发现你的关系数据库图是一张张独立的表,之间没有任何的关联,
如果这样,那建立好的数据库table就不能形成一个整体的关系。但一般建立好的表之间是存在关系的,如果建立这些关系就是要说的问题。
这里涉及几个重要的概念,下面先给出这些概念的定义:
主键:唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性,主键只能有一个。
外键:表的外键是另一表的主键, 外键可以有重复的, 可以是空值,用来和其他表建立联系,一个表可以有多个外键。
而在建立表的关系的时候又会有主键表和外键表。
这个是比较迷惑的问题而且很容易选错,选错了就无法顺利在表与表之间建立关系。
参考别人给出的一些说法:
外键表就是要建外键的表,
主键表是因为外键在另一个表上是主键。所以叫做主键表。
怎么理解这上面的两句话,举个例子最明白,我们见了两张表,一个表为,我们设主键为PatientID,
然后我们在建立一张表,这里我设置的主键是SectNumber,这两表之间RaportList Table通过外键PatientID与Patient Table的主
键 PatientID关联,参考上面的总结,那就是ReportList Table是外键表(要建外键的表),Patient Table就是主键表,在网上搜资料的时候可能会介绍到说外键表可以说
是主键表的一个属性,我觉得是刚好说反了,在用Sql Server建立关系的过程中就会发现这个问题。
顺便说下用Sql Server给表之间建立关系的步骤,先找到外键表,右键 --> 修改 -> 右键 --->关系--->添加 --->表和列规范 -->省略号-->设置主键表,对应的键。
保存之后生成关系就看得到了,ok!