关系数据库表和表之间通常存在三种关系。
一对一
多对一(如老师和学院)。
多对多(如老师和学生)。
分别就三种关系介绍数据库相关设计的思路和思考过程。
#一对一关系(少见) ) ) ) )。
创建父表和子表。 建议将数据量大的作为子表,以自己的id号作为主键,以父表的主键(id )作为外键。
#多对一关系
每个创建两个表,多表指向另一个表,并对多表施加外键约束。
例1 )每个教师只负责一门课的教学,一门课由几个教师教。 “教师”有属性。 员工编号、教师姓名、角色和“课程”具有属性。 课程号码、课程名称。
分析:从主题中可以看出,需要创建两个表:教师表和课程体系。 如果该关系是多对一的,则教师表指向子表,课程体系指向父表,教师表指向课程体系。
E-R图如下。 使用PowerDesigner15.1创建。
建议案文如下:
#多对多关系
ydm :选择一个表作为父表,另一个表作为子表,并在子表中添加外键。 建表文与例1相似,所以不多赘述。
在创建mhdnm个基本信息表的同时,使用两个id映射作为一个多列索引来创建表示两个表的数据关系的中间表。
例2 )一个产品由多个部件构成,也可以在一个部件上组装多个产品。 有产品编号和价格,零件有零件编号、重量和价格。
mhdnm :需要创建三个表: BOM表、产品表和关系表。
E-R图如下。
建议案文如下:
#总结
表中行中的信息由id (主键)标识,并且多个表之间的关系始终通过建立单个表的id映射来表示。 如果将此映射表包含在映射的表中,则可能会很简单(例如,多对一关系表); 如果很复杂,则需要单独提取。 例如,多对多关系表。 当然也可以不提取,但这样设计会产生很多冗余空间,占用硬盘。 分表节约空间,汇总表节约时间。 具体的表格应该如何设计归根到底取决于需求。