3.2.1 ER图转换为关系模型( 三 )


景点留言(景点留言ID , 景点ID , 用户ID , 景点留言标题 , 景点留言内容 , 景点留言时间)
美食价格(景点ID , 美食ID , 餐厅ID , 美食价格)
美食介绍(美食ID , 美食名称 , 美食图片 , 美食介绍)
美食餐厅(餐厅ID , 餐厅名称 , 餐厅门面图片 , 餐厅地址)
美食留言(留言ID , 餐厅ID , 用户ID , 美食留言标题 , 美食留言内容 , 美食留言时间)
酒店(酒店ID , 景点ID , 酒店名称 , 酒店评分 , 酒店地址 , 酒店地址 , 酒店价格 , 酒店图片 , 酒店介绍)
酒店留言(酒店留言ID , 酒店ID , 景点ID , 用户名 , 酒店留言标题 , 酒店留言内容 , 酒店留言时间)
非遗文化(非遗ID , 非物质文化名称 , 非物质文化图片 , 相关信息网址 , 景点ID)
以上就是概念设计的基本实体以及相关的属性 , 并分别进行了主键的命名 , 确定了基本的实体之后 , 就是根据管理流程以及数据流图确定他们之间的关系 , 进行E-R图的设计了 。E-R图的设计是通过先分后总的设计理念进行安排的 , 把部分的E-R模型设计好后 , 在进行了总的设计 , 这样的设计便于操作 , 易于理解、实现 , 但进行综合的时候一定要注意他们之间的关系 。下图是对应的E-R图
总体E-R图
3.逻辑结构设计 3.1逻辑设计的目标与任务
以上的概念设计阶段是独立于任何一种数据模型的 , 但是逻辑设计阶段就与选用的DBMS产品发生关系了 , 系统逻辑设计的任务就是将概念设计阶段设计好的基本E-R图转换为选用DBMS产品所支持的数据模型相符合的逻辑结构 。具体内容包括数据组织(将E-R图转换成关系模型、模型优化、数据库模式定义、用户子模式设计)、数据处理(画出系统功能模块图)两大任务 。其中最为关键的是把ER模型转换成相应的关系表结构 , 同时每个关系模型之间的范式应最好满足第三范式 , 只有这样的关系模式才可能尽可能的减小冗余 , 达到较好的效果 。
3.2关系模型设计 3.2.1 ER图转换为关系模型
ER图进行关系模型的转化时 , 应根据相应的规则进行转化 , 只有这样 , 才能尽可能的减小冗余 , 达到比较好的范式 , 使模型更加优化 , 通常的转换规则如下:
一对一联系 :若双方部分的参与 , 则将联系定义为一个新的关系 , 属性为参与双方的码 , 若一方全部参与 , 则将联系另一方的码作为全部参与一方的属性 , 
一对多联系:将单方参与实体的码作为多方参与实体的属性 , 
多对多联系:将联系定为新的关系 , 属性为参与双方的码 。
以上也就是基本的设计规则了 , 只要按照相应的规则转换 , 就能够得到所要的规范程度 , 得到一个良好的范式 , 根据得到的ER图 , 进行关系模式的转换 。具体的关系模型如下 。
用户表()
数据项名
数据类型
长度
别名
是否为空
主外键
约束
10
用户ID