首页 > 其他分享 >关系数据设计

关系数据设计

时间:2024-12-28 11:22:18浏览次数:5  
标签:主体 关系 关系数据 实体 客体 设计 主键

概念

世界上充斥着【一对一】、【一对多】、【多对多】的关系,实际上所谓【多对多】关系是不存在的。

关系,总是有两个对象,一为【主体】,一为【客体】,其间就是他们的关系的具体内容。

比如“我是你的同学”,“我”是主体,“你”是客体,“同学”是关系的具体内容。

在关系型数据库中,关系的内容就简单得多,都可表达为【拥有】。

而【拥有】这种关系,只有两种表现形式:

  • 主体拥有【一】个客体
  • 主体拥有【多】个客体

本质上【一】是【多】的形式中的一种情况,只不过在关系表的设计中有差异,才区分出来。

关系型数据库的实体关系的设计,本质上就是主实体拥有【一】或【多】个客实体的设计。不存在多主体拥有多客体的关系,认同多对多关系的观点,实质是主次不分、概念混乱。

关系型数据库的表设计

在做表设计时,我们只需要设计两种表:

  • 实体表:只存储实体信息
  • 关系表:只存储关系

注:主体与客体都是实体。谁是主体谁是客体,取决于观察者的立场。

主体拥有【一】个客体的表设计

这种关系有两种设计方法:

  • 不用关系表:将客体的主键作为主体的一个字段,表示客体天然地从属于主体,存在必然的强烈的从属关系。
  • 使用关系表:将主体与客体的关系存储在关系列,作为主体有多客体的一种情况,表示可选的、组合的、无从属关系或者概念弱相关的关系。

例如,司机、驾驶证与身份证的关系。

  • 司机必然拥有一个驾驶证,表设计就是:一张司机实体表,一张驾驶证实体表,驾驶证实体表的主键作为司机实体表的一个字段。
  • 司机拥有一个身份证,身份主与司机在概念上无必然联系,它们的关系是由更加抽象的层次产生的(公民与身份证),所以身份证不应该作为司机的字段,而应当使用一个关系表来存储。

注:使用关系表的情况,应当作为主体拥有【多】个客体的一种特殊情况来对待。

主体拥有【多】个客体的表设计

这种关系可以表述为主体与客体是可选的、组合的、无从属关系或者概念弱相关的关系。

这种关系只有一种设计方法:一张主体实体表、一张客体实体表、一张关系表。

当主体与客体的关系可以由另一个主体实体来体现时,关系表可以省去。

比如 学生、课程、成绩的关系。学生作为主体时,叙述是学生有多门课程、每门课程有一个成绩。按这个视角,会存在多个关系表。当把成绩作为主体时,学生与课程就成了成绩的必然的客体属性,同时学生成课程的关系也完美地体现在成绩实体表内。

表关系设计规范

  • 实体表:
    • 以合适的主体/客体的名称命名
    • 只存储实体字段、下属体主键字段、必要的元数据字段
  • 关系表:
    • 按【主体表名_客体表名_rel】的格式命名,【_rel】后缀表示关系表这种表类型;当客体表名有前缀时应当省略前缀,其省去的前缀的层级长短由具体概念确定
    • 只存储主体表主键、客体表主键、必要的元数据字段
    • 如果是主体拥有【一】个客体的关系,则为主体表主键与客体表主键的组合添加唯一性约束

 

标签:主体,关系,关系数据,实体,客体,设计,主键
From: https://www.cnblogs.com/heiing/p/18637297

相关文章

  • 某220kV降压变电站电气部分初步设计
    摘要0关键词:变电所;主接线;变压器;继电保护0前言51设计内容及要求61.1设计的原始资料及依据6(1)概述6(2)所址地理及气象条件6(3)本设计中各级电压侧年最大负荷利用小时数为:6(6)系统情况6(7)设计内容61.2负荷统计61.2.1站用复合61.2.2110kV负荷6......
  • 基于springboot的畜牧管理系统的设计与实现 毕业设计-附源码50674
    目录摘要1绪论1.1选题背景与意义1.2国内外研究现状1.3论文结构与章节安排2系统分析2.1可行性分析2.2系统流程分析2.2.1系统开发流程2.2.2用户登录流程2.2.3系统操作流程2.2.4添加信息流程2.2.5修改信息流程2.2.6删除信息流程2.3 系统......
  • 软考~系统规划与管理师考试——记忆篇——第四章——IT 服务规划设计
    文章目录1、规划设计流程中的主要活动(这个是大框架必须掌握):2、规划设计的主要目的:3、规划设计关键成功4因素:4、服务需求识别的内容:5、服务目录设计活动:6、服务目录成功因素:7、服务方案设计:8、过程要素设计的过程管理模型特性:P13(5)9、人员要素设计目的:10、人员要素设计活......
  • 【计算机毕业设计选题推荐】最新毕设选题----基于SpringBoot的农产品运输管理系统的设
    博主介绍:原计算机互联网大厂开发,十年开发经验,带领技术团队几十名,专注技术开发,计算机毕设实战导师,专注Java、Python、小程序、安卓、深度学习和算法开发研究。主要服务内容:选题定题、开题报告、任务书、程序开发、文档编写和辅导、文档降重、程序讲解、答辩辅导等,欢迎咨询~......
  • 【计算机毕业设计选题】最新毕设选题----基于Java的游戏推荐系统的设计与实现(源码+数
    博主介绍:原计算机互联网大厂开发,十年开发经验,带领技术团队几十名,专注技术开发,计算机毕设实战导师,专注Java、Python、小程序、安卓、深度学习和算法开发研究。主要服务内容:选题定题、开题报告、任务书、程序开发、文档编写和辅导、文档降重、程序讲解、答辩辅导等,欢迎咨询~......
  • 林业产品推荐系统的设计与实现(代码+数据库+LW)
    摘 要网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代,所以对于信息的宣传和管理就很关键。因此林业产品销售信息的管理计算机化,系统化是必要的。设计开发林业产......
  • 【电商系统】使用多种设计模式重构电商系统登录业务场景
    一、介绍在做业务功能开发的时候,每个程序员接触过最多的应该就是登录功能了,而一个登录功能有很多种登录交互的体现,当我们开始写登录代码的时候,前期能满足登录就行了,渐渐的系统中加入了不同业务需求的代码,以及每个登录需要特殊处理的参数,基本上我们要开发不同的接口和判断逻辑,对于......
  • 基于java web的公益网站的设计与实现+jsp源码+论文
    项目简介基于SSM实现的基于javaweb的公益网站的设计与实现+jsp源码+论文,主要功能如下:审核说明项目收集于互联网,经过我们仔细验证,可以正常运行;本项目属于学习项目,适合个人学习使用,不适合商用;精力有限,运行过程中若有小问题属正常现象,需要自行看源码进行简单的修复!项目......
  • JAVA设计模式总结之23种设计模式
    JAVA设计模式总结之23种设计模式|Id|Title|DateAdded|SourceUrl|PostType|Body|BlogId|Description|DateUpdated|IsMarkdown|EntryName|CreatedTime|IsActive|AutoDesc|AccessPermission||-------------|-------------|-------------|--------......
  • 最新高性能多目标优化算法:融合竞争学习与高斯扰动的多目标加权平均算法(MOWAA)求解MMF1-
    一、加权平均算法加权平均算法(WeightedAverageAlgorithm,WAA)是2024年提出的一种新型元启发式优化算法,其灵感来源于加权平均位置概念。WAA算法通过优化种群的加权平均位置来平衡全局搜索(Exploration)与局部开发(Exploitation),以提高搜索效率、加速收敛,并改善算法的整体性能......