(四)多对多模式
多对多模式,也是比较常见的一种数据库设计模式,它所描述的两个对象不分主次、地位对等、互为一对多的关系。对于A表来说,一条记录对应着B表的多条记录,反过来对于B表来说,一条记录也对应着A表的多条记录,这种情况就是“多对多模式”。
“多对多模式”需要在A表和B表之间有一个关联表,这个关联表也是“多对多模式”的核心所在。根据关联表是否有独立的业务处理需求,可将其划分为两种细分情况。
1. 关联表有独立的业务处理需求。
举例如下(注:这个例子已经作了相当程度的简化,仅仅是用来帮助大家理解“多对多模式”这个概念来使用的,请大家注意)。
比如网上书店,通常都会有“书目信息”和“批发单”。一条“书目信息”面对不同的购买客户、可以存在多张“批发单”,反过来,一张“批发单”也可以批发多条书目,这就是多对多模式。中间的“批发单明细”表就是两者的关联表,具备独立的业务处理需求,是一个业务实体对象,因此它具备一些特有的属性,比如针对每一条明细记录而言的“累计退货次数”、“累计退货数量”、“累计结算次数”、“累计结算数量”;由于批发单明细在数据产生后已经打印出纸质清单提供给客户,因此在“批发单明细”表里对纸质清单中打印的书目信息属性作了冗余(逆标准化),这样在将来即使修改了“书目信息”表中的属性,也不会影响跟客户核对批发单明细,不会影响未来的财务结算业务。
2. 关联表没有独立的业务处理需求
举例如下(注:这个例子已经作了相当程度的简化,仅仅是用来帮助大家理解“多对多模式”这个概念来使用的,请大家注意)。
比如用户与角色之间的关系,一般系统在做权限控制方面的程序时都会涉及到“系统用户表”和“系统角色表”。一个用户可以从属于多个角色,反过来一个角色里面也可以包含多个用户,两者也是典型的“多对多关系”。其中的关联表“用户角色关联表”在绝大多数情况下都是仅仅用作表示用户与角色之间的关联关系,本身不具备独立的业务处理需求,所以也就没有什么特殊的属性。
分享到:
相关推荐
2. 数据库设计分析阶段,进行详细的数据库需求分析,进行概念数据库的设计,画出数据库的E-R图(局部和整体E-R图) 3. 设计出详细的逻辑数据库结构,将各个实体和联系转化为相应的二维表即关系模式,指定各个关系...
数据库设计--图书馆管理系统,让你有一个大致的思维模式
抽象工厂模式是设计模式中的一种创建型模式,它提供了一个创建对象族的接口,而无需指定它们的具体类。在.NET开发中,这种模式常用于实现多数据库连接,比如连接到MySQL、SQL Server或Oracle等不同的数据库系统。...
4. 关系设计:定义表之间的关联,如病人与诊疗记录的一对多关系,诊疗记录与费用项目的多对多关系。 二、C++编程 1. C++基础:熟练掌握C++语法,包括变量、控制结构、函数、类和对象等。 2. 文件操作:为了保存和...
总的来说,数据库设计涉及到对业务需求的深入理解,以构建一个高效、可靠且易于维护的数据存储解决方案。数据字典、E-R图和关系模式是这一过程中的关键工具,它们帮助我们定义数据结构,设计查询,并最终实现满足...
在进行此课程设计时,学生不仅会学习到数据库设计的基本流程,还会掌握需求分析技巧、E-R模型构建、逻辑设计方法以及SQL语言的实际应用,这对于理解和构建实际数据库系统至关重要。通过这个过程,学生将能够提升问题...
这些设计步骤有助于将复杂问题分解,减少局部问题对整体设计的影响,提高数据库设计质量和效率。在设计大型数据库时,这些方法和工具的应用至关重要,因为它们能够确保系统的稳定性和扩展性,满足用户不断变化的需求...
【数据库课程设计--宾馆系统】是一项综合性的学习任务,旨在让学生掌握数据库系统设计的基本流程,包括系统需求分析、概念设计、逻辑设计以及数据库的创建和使用。以下是详细的知识点解析: 1. **系统需求分析**: ...
《数据库设计指南-60个设计技巧》是一本专注于数据库设计的专业资料,旨在提供一系列实用的设计策略和最佳实践。数据库设计是信息系统开发的核心环节,它直接影响到系统的性能、可扩展性和数据一致性。以下是对这份...
- **E-R图到关系模型的转换**:遵循转换原则,将实体型、一对一、一对多和多对多联系转换为关系模式,合并相同码的关系模式。 - **实例分析**:例如,学生、课程和班级的实体,通过E-R图表示,然后转化为关系模式...
数据库设计的核心任务是创建一个适合特定应用环境的数据库模式,包括概念设计、逻辑设计和物理设计。概念设计是从用户需求出发,构建数据模型;逻辑设计是将概念模型转化为具体的数据库管理系统(DBMS)支持的逻辑...
数据库课程设计-工资管理系统:采用B/S模式,Eclipse EE版本开发,SQL Server数据库,实现“工资管理系统”,压缩包下,有工程源代码,数据库mdf文件,课程设计文档,及答辩PPT[全套]
数据库设计是分布式数据库系统设计的核心,它需要解决两个问题:模式设计和内模式设计。模式设计是指将全局概念模式划分为局部概念模式,而内模式设计是指如何存储分配的片段。这些问题在分布式数据库中变得更加复杂...
在C#中,常见的设计模式包括单例模式(确保类只有一个实例)、工厂模式(提供创建对象的接口)、观察者模式(定义对象间的一对多依赖关系)、装饰器模式(动态地给对象添加新的行为)和策略模式(定义一系列算法,并...
总的来说,这个课程设计旨在让学生将理论知识应用于实际,掌握数据库设计的完整流程,提升问题解决能力和系统开发能力。在设计过程中,学生不仅需要理解和应用数据库原理,还要学会与用户沟通,确保设计出的系统能...
E-R图转化为逻辑结构,实体对应关系模式,一对一、一对多和多对多的联系分别通过不同方式处理,如在多方关系模式中添加一方的主码作为外码,或为多对多联系创建新的关系模式。 逻辑结构设计阶段,将E-R图转换为具体...
实验四 数据库设计实验,包含一个模式7张基本表,详情参考博客。
图书馆数据库设计需求分析 E-R 图逻辑设计 数据库设计是指根据用户的需求,设计一个满足需求的数据库系统的过程。数据库设计的步骤包括需求分析、概念设计、逻辑设计、物理设计等。其中,E-R 图是概念设计的重要...
空间数据库课件:第七章 数据库设计7-2.ppt 本资源摘要信息是关于空间数据库课件的第七章数据库设计的内容,主要涵盖了逻辑结构设计的任务、步骤和转换过程。 逻辑结构设计是数据库设计的重要步骤之一,其任务是将...
数据库课程设计是IT教育中的一个重要环节,它通常涉及到数据库理论、SQL语言、数据库设计与实现等多方面知识。在这个特定的案例中,我们关注的是一个名为"教师管理系统"的项目,这显然是一款针对学校教师信息管理和...