系统设计之概念与关系

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

在之前的若干博客中,都提出了一个观点:数据是由 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
目录
相关文章
|
9月前
|
存储 Java 数据库连接
串池的概念
串池的概念
54 0
|
12月前
|
数据库
关系数据规范化理论
关系数据规范化理论
|
安全 开发者
需要层次理论 | 学习笔记
快速学习需要层次理论。
141 0
需要层次理论 | 学习笔记
|
存储 弹性计算 资源调度
【k8s】概念、构成
文章目录 前言 一、概念
91 0
【k8s】概念、构成
|
网络协议 数据可视化 测试技术
面向对象分析与设计的底层逻辑
真正掌握了面向对象分析和设计的方法,也体会到其中的益处,对理解业务、方案设计、编码开发都有好处。
679 0
面向对象分析与设计的底层逻辑
|
存储 数据库
关系数据库设计核心
关系数据库设计核心
315 0
关系数据库设计核心
|
自然语言处理 运维 负载均衡
PolarisMesh系列文章——概念系列(一)
北极星是腾讯开源的服务发现和治理中心,致力于解决分布式或者微服务架构中的服务可见、故障容错、流量控制和安全问题。虽然,业界已经有些组件可以解决其中一部分问题,但是缺少一个标准的、多语言的、框架无关的实现。
325 0
|
计算机视觉
挣值分析 概念
挣值分析 概念
|
iOS开发
[译] 伟大设计与好设计之间区别是什么?这里告诉你真相
能否举一些伟大设计的例子?发表评论与我们一起分享吧。
1097 0
|
XML 数据格式
改善代码设计 —— 处理概括关系(Dealing with Generalization)
  系列博客       1. 改善代码设计 —— 优化函数的构成(Composing Methods)       2. 改善代码设计 —— 优化物件之间的特性(Moving Features Between Objects)       3.
947 0

热门文章

最新文章