数据库表设计1

时间:2015.4.21.17:50

学习编程2年了,第一次分析需求。总结下我对建表的理解。

1.数据库中存储表,表是对象的集合。

2.表中字段是对象属性。

3.表与表之间关系分1:1,1:N或N:1,N:N。

4.1:1的理解

球队                                     地址

球队id 球队名 地址id(外键)
QID NAME DID
地址id 地址名
DID NAME

这是外键关联。通过DID。

 

球队                                    地址

球队id 球队名
QID NAME
球队id 地址名
QID NAME

这是主键关联,通过QID

分析:球队和地址关系。一个球队有一个地址,一个地址对应一个球队(不考虑2个球队共用一个地址)。

个人思考:我认为1:1很有意思。如果没有别的表与地址表关联的话,地址表可以不要,直接在球队表中加入一个字段“地址名”。因为球队表与地址表1:1.也就是说球队表与“地址名”1:1.这也就是表与属性的对应。

5.1:N或N:1

人                                        省份

人id ID
姓名 NAME
省id SID
省id 省名
SID NAME
   

分析:一个人属于一个省,一个省有很多人。

个人思考:这种情况只有一种关联。人是子表,省份是总表。管联外键放在子表中。为什么呢?这样理解:放在人表中,一个人只对应一个省id,也就是一个省。如果管联字段放在

省份表中,那就是表中加一个“人id”字段。表对应的对象就是一个省有一个“人id”,就是一个人。但是与实际不符。实际是:一个省有很多人。

6.N:N

学生                                   选课                  

学号 姓名
SID NAME
课程id 课程名
XID NAME

学-课

学号 课程号
SID XID

 

 

分析:一个学生有多门课,一门课有多个学生学。

个人思考:这种多对多也是一种关联。需要建一个中间表,表中是关联的表的主键。SID和XID是中间表(学-课)的联合主键。学生表和选课表不需要加关联词。

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。