三层体系结构总结(一)

简介: 所谓三层体系结构,是在客户端与数据库之间加入了一个"中间层",也叫组件层。 三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。 开发人员可以将应用的商业逻辑放在中间层应用服务器上,把应用的业务逻辑与用户界面分开。
   所谓三层体系结构,是在客户端与数据库之间加入了一个"中间层",也叫组件层。
三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。
开发人员可以将应用的商业逻辑放在中间层应用服务器上,把应用的业务逻辑与用户界面分开。在保证客户端功能的前提下,为用户提供一个简洁的界面。这意味着如果需要修改应用程序代码,只需要对中间层应用服务器进行修改,而不用修改成千上万的客户端应用程序。从而使开发人员可以专注于应用系统核心业务逻辑的分析、设计和开发,简化了应用系统的开发、更新和升级工作。
对于三层体系结构的设计,不同的人有不同的设计方法,我所见过的几个项目中对三层的不同实现
第一种:
三层分别为:DL层,BL层和RL层
DL是数据访问层,其中包含的是单表中的字段属性和对此单表的操作(填查删改),类似Java中的entity Bean的概念。每一个单表对应一个DL
BL是业务逻辑层,其中包含的是业务逻辑,一个BL下引用很多的DL,实现对单表的组合查询及操作,要注意此层涉及到数据库的架构,在设计数据库时,要实现数据表之间是主表与子表的关系。例如:T_Employee雇员表,T_Part部门表,T_Position职位表,T_Site办公地点表

主表是T_Employee雇员表,T_Part部门表,T_Position职位表,T_Site办公地点表为子表
对于表的综合查询方法是:
先对主表查询,调用主表所对应的DL。再根据主表的记录分别对每一个子表进行查询。将自表的查询结果添加的主表后,形成一个大的查询集合。
对于表的操作(增删改)
此时只对主表进行操作,调用主表对应的DL中的操作方法。
RL层是逻辑判断层,主要是对页面上传入的数据进行逻辑判断。RL层之上就是UI

个人感觉此种架构要在数据库设计上注意表之间的关系,尽力满足主与子的关系。在功能上对用户要有一定的限制,不要表现在对于子表的删除操作一定要慎重,以免造成主表与子表的数据在逻辑上出现的主表的外键在子表中没有相对应的值。
目录
相关文章
|
canal 消息中间件 关系型数据库
系统重构数据同步利器之Canal实战篇
系统重构数据同步利器之Canal实战篇
1319 1
ES集群报错 failed to send join request to maste
ES集群报错 failed to send join request to maste
385 0
|
缓存 运维 NoSQL
Redis在生产环境中是怎么部署的?
Redis在生产环境中是怎么部署的?
311 0
|
12月前
|
人工智能 弹性计算 大数据
Cloud Up挑战赛现已开启,点击查看活动玩法
【Cloud Up挑战赛】正式开启,围绕互联网应用开发、AI、大数据等七大领域,提供技术解决方案,帮助用户解决上云过程中的技术难题,通过实践降低成木、提高效率。每两周更新一期主题挑战,完成特定任务可获奖励,连续参与3期还有特别大奖。第三期挑战已启动,聚焦AI模型服务与推理,快来参与赢取丰富奖品吧!
334 2
|
Java 关系型数据库 数据库
Spring Boot多数据源及事务管理:概念与实战
【4月更文挑战第29天】在复杂的企业级应用中,经常需要访问和管理多个数据源。Spring Boot通过灵活的配置和强大的框架支持,可以轻松实现多数据源的整合及事务管理。本篇博客将探讨如何在Spring Boot中配置多数据源,并详细介绍事务管理的策略和实践。
1358 3
|
12月前
|
Kubernetes Cloud Native 开发者
云原生入门:Kubernetes的简易指南
【10月更文挑战第41天】本文将带你进入云原生的世界,特别是Kubernetes——一个强大的容器编排平台。我们将一起探索它的基本概念和操作,让你能够轻松管理和部署应用。无论你是新手还是有经验的开发者,这篇文章都能让你对Kubernetes有更深入的理解。
|
12月前
|
Kubernetes Linux 开发者
深入探索容器化技术——Docker 的实战应用
深入探索容器化技术——Docker 的实战应用
199 7
|
12月前
|
缓存 NoSQL PHP
Redis作为PHP缓存解决方案的优势、实现方式及注意事项。Redis凭借其高性能、丰富的数据结构、数据持久化和分布式支持等特点,在提升应用响应速度和处理能力方面表现突出
本文深入探讨了Redis作为PHP缓存解决方案的优势、实现方式及注意事项。Redis凭借其高性能、丰富的数据结构、数据持久化和分布式支持等特点,在提升应用响应速度和处理能力方面表现突出。文章还介绍了Redis在页面缓存、数据缓存和会话缓存等应用场景中的使用,并强调了缓存数据一致性、过期时间设置、容量控制和安全问题的重要性。
240 5
|
12月前
|
Kubernetes Cloud Native API
深入理解Kubernetes——容器编排的王者之道
深入理解Kubernetes——容器编排的王者之道
260 1
|
12月前
|
运维 Kubernetes Cloud Native
云原生技术入门:Kubernetes和Docker的协同工作
【10月更文挑战第43天】在云计算时代,云原生技术成为推动现代软件部署和运行的关键力量。本篇文章将带你了解云原生的基本概念,重点探讨Kubernetes和Docker如何协同工作以支持容器化应用的生命周期管理。通过实际代码示例,我们将展示如何在Kubernetes集群中部署和管理Docker容器,从而为初学者提供一条清晰的学习路径。