系统设计之概念与关系

简介: 系统设计之概念与关系

在之前的若干博客中,都提出了一个观点:数据是由 IDContent 构成的。然而数据从来都不是单独存在的,数据与数据之间存在者复杂的关系。每一种数据都有一个 概念(也可称之为:名称、实体、对象)。数据与数据之间存在着 关系。本文要梳理的点就是系统设计中的概念与关系。

概念

RESTful API 设计中有一句话 资源在网络中以某种表现形式进行状态转移。数据在不同的的业务之间不停的流动,在用户端,数据可以是网页,也可以是原生界面;在业务系统中,使用对象来承载数据,使用函数操作数据;在存储系统中,数据被持久化为三种形态:

  • 键值对(K-V)
  • 集合/表格(Table)
  • 关系型数据(介于K-V与Table之间)

数据命名的好坏,代表了开发人员对于数据理解的深度。概念不清,概念之间的关系自然无从谈起。

关系

对象之间的关系,有且只有两种:

  • 并列关系(Sibling)
  • 父子关系(Parent-Child)

一组对象形成一棵树(Tree),若干颗关系密切的树形成整个森林(Forest),一个森林就是一个系统。在持久化的过程中,通过对象映射关系(ORM),数据从业务系统的对象中转移到存储系统中。

数据之间的有关系,有且仅有三种:

  • 一对一(One-to-One)
  • 一对多(One-to-Many)
  • 多对多(Many-to-Many)

自上而下,在系统中的表达的难度依次增加,系统的复杂度也就越高。自下而上,下面的关系总能用来表示上面的关系,因此更具表达能力。

设计

业务系统设计的重点在于赋予 概念,梳理 关系,以及在满足业务需求的前提下,尽量简化 关系。关系越简单,系统越简单;系统越简单,开发和维护的难度也就越低。当然,表达能力也就越低。如果说设计有三个层次,那么这三个层次是:

  • 梳理清楚概念与关系
  • 简化关系的能力
  • 复杂化关系以表达业务需求

从产品角度考虑,拥抱关系复杂化,是开发人员设计成熟的标识。

本文作者 : cyningsun

本文地址https://www.cyningsun.com/12-15-2020/system-design-concept-and-relation.html

版权声明 :本博客所有文章除特别声明外,均采用 CC BY-NC-ND 3.0 CN 许可协议。转载请注明出处!

# System Design

  1. 系统为何如此脆弱
  2. 译|Design patterns for container-based distributed systems
目录
相关文章
|
3月前
|
uml
建模底层逻辑问题之在建模时,对现实进行抽象该如何操作
建模底层逻辑问题之在建模时,对现实进行抽象该如何操作
|
3月前
|
存储 关系型数据库 MySQL
软件设计与实现:从概念到产品
【8月更文第21天】在现代软件开发过程中,从概念到产品的转化需要经过多个阶段的设计和规划。本文将重点介绍软件设计的几个关键方面:软件设计概述、架构设计、模块设计、用户界面设计以及数据库设计,并通过一个假设的项目——在线图书管理系统为例进行说明。
406 1
|
4月前
软件复用问题之复用决策中,业务架构和技术之间有何关系
软件复用问题之复用决策中,业务架构和技术之间有何关系
|
5月前
|
存储 安全 区块链
元宇宙与区块链技术的关系可以从多个角度进行阐述。以下是对这两者之间关系的详细分析
**元宇宙:虚拟世界融合现实元素,强调交互与沉浸;区块链:去中心化、安全的分布式账本。两者结合,区块链确保元宇宙中虚拟资产安全、支付高效、身份验证私密、治理透明,支撑其经济体系与用户信任,驱动未来发展。**
每日一道面试题之软件体系结构的核心要素有哪些?各起什么作用?
每日一道面试题之软件体系结构的核心要素有哪些?各起什么作用?
|
设计模式 Java uml
UML的六种关系-系统学习四
众所周知设计模式是程序界的内功心法,那么这内功心法中包含UML图(宏观部分)、场景(场段)、代码(实操),UML图中最重要的元素当属六大关系了至此有了小编的这边总结文章。
|
uml
UML四大关系
UML四大关系
94 0
|
数据可视化
【设计篇】36 # 如何理解可视化设计原则?
【设计篇】36 # 如何理解可视化设计原则?
239 0
【设计篇】36 # 如何理解可视化设计原则?
|
存储 程序员 虚拟化