`
xiaolaogong
  • 浏览: 66852 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

数据库设计模式-多对多模式

阅读更多

(四)多对多模式
多对多模式,也是比较常见的一种数据库设计模式,它所描述的两个对象不分主次、地位对等、互为一对多的关系。对于A表来说,一条记录对应着B表的多条记录,反过来对于B表来说,一条记录也对应着A表的多条记录,这种情况就是“多对多模式”。
“多对多模式”需要在A表和B表之间有一个关联表,这个关联表也是“多对多模式”的核心所在。根据关联表是否有独立的业务处理需求,可将其划分为两种细分情况。
1.       关联表有独立的业务处理需求。
举例如下(注:这个例子已经作了相当程度的简化,仅仅是用来帮助大家理解“多对多模式”这个概念来使用的,请大家注意)。
比如网上书店,通常都会有“书目信息”和“批发单”。一条“书目信息”面对不同的购买客户、可以存在多张“批发单”,反过来,一张“批发单”也可以批发多条书目,这就是多对多模式。中间的“批发单明细”表就是两者的关联表,具备独立的业务处理需求,是一个业务实体对象,因此它具备一些特有的属性,比如针对每一条明细记录而言的“累计退货次数”、“累计退货数量”、“累计结算次数”、“累计结算数量”;由于批发单明细在数据产生后已经打印出纸质清单提供给客户,因此在“批发单明细”表里对纸质清单中打印的书目信息属性作了冗余(逆标准化),这样在将来即使修改了“书目信息”表中的属性,也不会影响跟客户核对批发单明细,不会影响未来的财务结算业务。
图5
2.       关联表没有独立的业务处理需求
举例如下(注:这个例子已经作了相当程度的简化,仅仅是用来帮助大家理解“多对多模式”这个概念来使用的,请大家注意)。
比如用户与角色之间的关系,一般系统在做权限控制方面的程序时都会涉及到“系统用户表”和“系统角色表”。一个用户可以从属于多个角色,反过来一个角色里面也可以包含多个用户,两者也是典型的“多对多关系”。其中的关联表“用户角色关联表”在绝大多数情况下都是仅仅用作表示用户与角色之间的关联关系,本身不具备独立的业务处理需求,所以也就没有什么特殊的属性。
图6

分享到:
评论

相关推荐

    数据库设计---需求分析设计

    2. 数据库设计分析阶段,进行详细的数据库需求分析,进行概念数据库的设计,画出数据库的E-R图(局部和整体E-R图) 3. 设计出详细的逻辑数据库结构,将各个实体和联系转化为相应的二维表即关系模式,指定各个关系...

    数据库设计--图书馆管理系统

    数据库设计--图书馆管理系统,让你有一个大致的思维模式

    设计模式--抽象工厂模式实现多数据库连接

    抽象工厂模式是设计模式中的一种创建型模式,它提供了一个创建对象族的接口,而无需指定它们的具体类。在.NET开发中,这种模式常用于实现多数据库连接,比如连接到MySQL、SQL Server或Oracle等不同的数据库系统。...

    数据库课程设计---医院管理收费系统

    4. 关系设计:定义表之间的关联,如病人与诊疗记录的一对多关系,诊疗记录与费用项目的多对多关系。 二、C++编程 1. C++基础:熟练掌握C++语法,包括变量、控制结构、函数、类和对象等。 2. 文件操作:为了保存和...

    数据库设计(数据字典,E-R图,模式关系等)

    总的来说,数据库设计涉及到对业务需求的深入理解,以构建一个高效、可靠且易于维护的数据存储解决方案。数据字典、E-R图和关系模式是这一过程中的关键工具,它们帮助我们定义数据结构,设计查询,并最终实现满足...

    数据库课程设计--宾馆客房信息管理系统.pdf

    在进行此课程设计时,学生不仅会学习到数据库设计的基本流程,还会掌握需求分析技巧、E-R模型构建、逻辑设计方法以及SQL语言的实际应用,这对于理解和构建实际数据库系统至关重要。通过这个过程,学生将能够提升问题...

    数据库系统---数据库设计.pdf

    这些设计步骤有助于将复杂问题分解,减少局部问题对整体设计的影响,提高数据库设计质量和效率。在设计大型数据库时,这些方法和工具的应用至关重要,因为它们能够确保系统的稳定性和扩展性,满足用户不断变化的需求...

    数据库课程设计--宾馆系统

    【数据库课程设计--宾馆系统】是一项综合性的学习任务,旨在让学生掌握数据库系统设计的基本流程,包括系统需求分析、概念设计、逻辑设计以及数据库的创建和使用。以下是详细的知识点解析: 1. **系统需求分析**: ...

    数据库设计指南-60个设计技巧-pdf.rar_数据库设计

    《数据库设计指南-60个设计技巧》是一本专注于数据库设计的专业资料,旨在提供一系列实用的设计策略和最佳实践。数据库设计是信息系统开发的核心环节,它直接影响到系统的性能、可扩展性和数据一致性。以下是对这份...

    数据库-原理-及应用-数据库设计(与“数据库”有关文档共74张).pptx

    数据库设计的核心任务是创建一个适合特定应用环境的数据库模式,包括概念设计、逻辑设计和物理设计。概念设计是从用户需求出发,构建数据模型;逻辑设计是将概念模型转化为具体的数据库管理系统(DBMS)支持的逻辑...

    数据库课程设计-工资管理系统.rar

    数据库课程设计-工资管理系统:采用B/S模式,Eclipse EE版本开发,SQL Server数据库,实现“工资管理系统”,压缩包下,有工程源代码,数据库mdf文件,课程设计文档,及答辩PPT[全套]

    数据库课程设计--手机销售管理.doc

    【数据库课程设计--手机销售管理】的文档是一个关于利用数据库技术设计手机销售管理系统的课程设计报告。该报告涉及桂林航天工业...这有助于学生掌握数据库技术在实际业务中的应用,提高他们的数据库设计和开发能力。

    数据库课程设计-学生选课管理系统.docx

    1. 数据库设计:报告中提到数据库设计的概念,包括数据库逻辑模式和物理模式的设计,目标是提供一个高效率的运行环境,满足应用需求。 2. 数据库管理系统:报告中使用SQL Server作为数据库管理系统,使用Java语言...

    学习分布式数据库----分布式数据库课件

    数据库设计是分布式数据库系统设计的核心,它需要解决两个问题:模式设计和内模式设计。模式设计是指将全局概念模式划分为局部概念模式,而内模式设计是指如何存储分配的片段。这些问题在分布式数据库中变得更加复杂...

    C#语法,数据库实例,设计模式----学习C#的必备资料,一应俱全!

    在C#中,常见的设计模式包括单例模式(确保类只有一个实例)、工厂模式(提供创建对象的接口)、观察者模式(定义对象间的一对多依赖关系)、装饰器模式(动态地给对象添加新的行为)和策略模式(定义一系列算法,并...

    数据库课程设计--宾馆客房信息管理系统.doc

    总的来说,这个课程设计旨在让学生将理论知识应用于实际,掌握数据库设计的完整流程,提升问题解决能力和系统开发能力。在设计过程中,学生不仅需要理解和应用数据库原理,还要学会与用户沟通,确保设计出的系统能...

    数据库系统概论-5-关系数据库设计理论.ppt

    规范化理论是关系数据库设计理论的重要组成部分,它是指将关系模式分解成更小的关系模式,以消除数据冗余和异常。规范化理论有多种方法,如第一范式、第二范式、第三范式等。 关系数据库设计理论是数据库系统概论的...

    数据库实验四-数据库设计

    实验四 数据库设计实验,包含一个模式7张基本表,详情参考博客。

    图书馆数据库设计 需求分析 E-R 图 逻辑设计

    图书馆数据库设计需求分析 E-R 图逻辑设计 数据库设计是指根据用户的需求,设计一个满足需求的数据库系统的过程。数据库设计的步骤包括需求分析、概念设计、逻辑设计、物理设计等。其中,E-R 图是概念设计的重要...

    空间数据库课件:第七章 数据库设计7-2.ppt

    空间数据库课件:第七章 数据库设计7-2.ppt 本资源摘要信息是关于空间数据库课件的第七章数据库设计的内容,主要涵盖了逻辑结构设计的任务、步骤和转换过程。 逻辑结构设计是数据库设计的重要步骤之一,其任务是将...

Global site tag (gtag.js) - Google Analytics