以前我自己做过的项目中和别人的项目中都有这样的一些定论,就是往往先设计数据库表模型,然后根据表产生业务逻辑模型。譬如,在数据库中有一个表T_USER,在程序中就会有User类,所以一般情况就一对一的映射关系了。
领域模型是对领域内的概念类或现实世界中对象的可视化表示。又称概念模型、领域对象模型、分析对象模型。它专注于分析问题领域本身,发掘重要的业务领域概念,并建立业务领域概念之间的关系。
数据库表结构一般都由领域模型来,除了能够保存领域模型外,还需要考虑数据库本身的特征。
我们个举例:相信很多都办过信用卡,信用卡表上有申请人的基本信息,申请人工作信息,联系人信息,从领域模型角度来说有三个概念类:人的基本信类,工作信息类和联系人信息类,他们是组合关系。按照这样数据库表设计如下:
这样设计看上去也没有问题,有很多人说这样很清楚,这基本上也是一对一的映射。但是从数据库角度来说这样是最优化的吗?我个人这样可以这样设计,将三个表合在一起(这样不会破坏领域模型的,Hinernate的component可以实现),如下图:
当然也有它的缺点: 1.表操作比较频繁.2.表的扩展比较笨重
这样要平衡一下了,从领域模型角度来说,其实他们是一个业务实体,组合关系,不可分割.所以说对实体操作,第一种方案也会对三个表操作,特别是查询,第一种方案有两个外键,显然没有第二种快了.
所以大家在考虑领域模型或业务对象时,要按照他们本身的原则设计,不要依赖于数据库表的结构.反过来做数据库表设计的时候不竟要完成领域模型的数据要求,还要考虑数据库的性能问题.
- 大小: 23.5 KB
- 大小: 13.7 KB
分享到:
相关推荐
《速达5000数据库表结构物理模型详解》 速达5000是一款广泛应用于中小型企业管理的软件,其强大的功能涵盖了财务、进销存、生产等多个方面。了解并掌握其数据库表结构的物理模型是进行软件二次开发、系统优化及数据...
3. **基本信息管理系统**: 这个系统的基础数据可能涵盖企业、部门、员工、物料等基本信息,对应的数据库表结构会有企业信息表、部门表、员工信息表、物料主数据表等,用于构建企业信息模型。 4. **生产设备管理系统...
这个数据库表结构的压缩包文件为我们提供了深入理解泛微ecology8.0系统后台运作的关键信息。 首先,"集成中心"模块是整个系统的核心,它负责不同功能模块之间的数据交互和流程整合。表结构可能包括任务分配、工作流...
例如,员工履历资料可能对应员工基本信息、社会关系和工作简历等多个实体。 2. 主键与外键:主键是表中的唯一标识,用于区分实体的唯一性;外键则用来建立表与表之间的联系。在数据库设计中,主键与外键的配合至关...
Redmine是一款开源的项目管理工具,它基于Ruby on Rails框架构建,被广泛用于软件开发团队进行任务跟踪、问题管理以及项目协作。...总的来说,熟悉Redmine的数据库表结构是进行有效开发和维护的基础。
- **映射类和属性**:业务实体对象中的每个属性对应数据库表中的一个字段。例如,订单实体可以包含下单日期、税金等属性。 - **映射泛化关系**:泛化关系指的是继承关系,在数据库设计中可以通过以下几种方式来映射...
类图和关系数据库表之间存在着自然的对应关系,通过对UML类图的理解,可以自动生成对应的关系数据库表结构,从而提高开发效率,减少重复劳动,确保数据库设计的一致性和准确性。 一、UML类图基础知识点 UML类图...
综上所述,数据库模型和设计工具是IT领域的重要组成部分,而Navicat Data Modeler作为一款高效的设计工具,能帮助用户更好地理解和构建复杂的数据库结构,实现数据管理的精细化和专业化。通过深入学习和使用这款工具...
本文将详细介绍如何利用C#和.NET来创建这样一个工具,以便快速生成数据库表的实体类。首先,我们需要连接到数据库并获取其架构信息。这可以通过ADO.NET的`SqlConnection`类实现,连接字符串应包含数据库服务器、...
【数据库表结构设计】 ...总的来说,数据库表结构设计是IT领域中的核心任务,它涉及到数据组织、关系建立、性能优化和信息管理等多个方面。理解和熟练应用上述原则,能确保数据库设计的有效性和高效性。
综上所述,关系模型是数据库设计的基础,它提供了一种结构化、规范化的数据表示方式,支持复杂的数据操作,并通过完整性约束保证数据的准确性和一致性。理解和掌握关系模型对于数据库管理和应用开发至关重要。
例如,根据数据库表结构自动生成的类可以映射到数据库表,类的属性对应表的字段,类的方法可以封装SQL语句,简化CRUD操作。 标签中的"数据结构"暗示了这个工具或脚本可能涉及到如何有效地在代码中表示和操作数据库...
在这个场景中,"JAVA通过实体生成数据库表"指的是使用特定的工具或框架,根据预先定义好的Java实体类,自动生成对应的数据库表结构。 首先,我们需要理解什么是实体类。在Java中,实体类通常是对应数据库中的一张表...
【数据库关系模型】 关系模型是数据库管理的核心概念,由E.F.Codd博士在1970年提出,它...关系模型的这些基本概念和操作构成了我们理解和操作数据库系统的基础,确保数据的准确性和一致性,支持高效的数据管理和分析。
标签“P6 表结构”进一步明确了主题,P6的表结构涉及到的数据模型涵盖了项目管理中的各个要素,如活动、资源、进度、成本等。了解这些表的相互关系和数据字段可以帮助用户更有效地操作和优化P6数据库。 压缩包子...
本文将详细介绍如何使用PowerDesigner 16.5将数据库表结构导出为Word文档,以及相关的数据库操作和配置。 一、连接数据库 1. 启动PowerDesigner,进入主界面。点击菜单栏中的“Database”(数据库),然后选择...