百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

产品架构设计之产品实体设计一,二

cac55 2024-09-20 12:55 27 浏览 0 评论

本文深入探讨了实体设计的每个关键步骤,从识别核心实体到定义其属性、构建实体间关系,以及如何验证设计以适应实际业务需求。通过具体的电商平台案例,我们展示了如何将抽象的业务概念转化为具体的产品架构,确保设计既符合当前需求又具备未来扩展的可能。

今天我们来谈一下产品架构设计中,一个必不可少的环节——实体设计。

01什么是实体?

在产品架构中,实体可以理解为“名词”——即产品中的关键要素或对象。这些实体是产品功能的基本构件,代表了实际业务中的具体事物或概念。

比如,在一个电商平台中,用户、商品、订单都是典型的实体。它们是产品中不可或缺的部分,是我们要处理和操作的对象。

那我们为什么要抽象设计实体?

抽象设计实体的目的是为了把复杂的业务场景和需求转化为易于理解和实现的模型。实体是产品中最基本的组成单元,通过抽象设计实体,我们能够:

  • 明确产品的核心功能:将实际业务中的复杂对象抽象为实体,可以清晰地看到产品的核心功能和组成部分。
  • 简化系统设计:实体的抽象设计能够帮助我们将复杂的逻辑拆解成可管理的部分,使系统设计更加简洁、易于维护。
  • 提高可扩展性:通过合理的实体设计,可以使产品架构具有良好的扩展性,方便未来的功能扩展和更新。

而如果用大白话来解释就是:我们将一个模糊的业务,提炼出真正要“落库”的数据表,毕竟计算机只能处理结构化的数据!

那可能有朋友要问了在产品架构中为什么要先设计实体?

实体设计是产品架构设计的基础。实体设计决定了产品的基本结构和逻辑,是后续流程设计、数据模型设计、界面设计等工作的基础。

如果没有一个清晰的实体设计,整个产品架构将会缺乏坚实的基础,导致功能实现的复杂度增加,系统难以扩展和维护。

试想下如果大家连页面上放什么字段都没有想清楚,一上来就画页面,这样的产品在大型的企业级B端产品中是不敢想象的灾难设计。

所以说在产品架构设计中,实体设计是将业务需求转化为技术实现的桥梁。一个优秀的实体设计不仅能够支撑产品的现有功能,还能为未来的扩展奠定坚实的基础。

02 实体设计的方法

具体来说,我们设计实体的方法可以分为下面的4步:

1. 识别关键实体

在产品架构设计初期,首先要识别出产品中的关键实体。在绝大多数的时候,这些实体通常对应于产品中的核心功能或流程,代表了业务中的主要对象(比如会员,订单,商品等)。

步骤:

  1. 分析线下用户的工作场景,提取出与用户交互最频繁的关键词对象。
  2. 从业务流程中找出对产品功能至关重要的元素。

例如:梳理用户报销场景:用户提供票据,填写金额,提交纸质表单,领导签字该表单,财务查阅该表单……..(这张表单就是我们要提炼的实体-报销单)

2. 定义实体属性

因为每个实体都有其独特的属性,而在找到实体后就需要提炼实体的属性,这些属性描述了实体的特征和状态。

步骤:

  1. 列出每个实体能唯一区分的属性,如ID、名称、描述等。
  2. 根据业务需求,增加与业务逻辑相关的属性。

例如:报销单中唯一能区分的属性是单据号,单据类型,而根据A公司要求,单据中必须要有申请人ID,申请人职位,申请人职级……(这些唯一项与A公司的要求共同构成了实体属性字段)

3. 设计实体之间的关系

实体之间的关系是产品逻辑的核心。通过设计实体间的关系,可以确定系统的逻辑结构和数据流动。

步骤:

  1. 确定实体之间的关联类型,如一对一、一对多、多对多等。
  2. 使用实体关系图(ER图)来展示实体之间的关系。

4. 验证实体设计

设计完成后,需要对实体设计进行验证,以确保其能够满足业务需求,并具备良好的扩展性和可维护性。

步骤:

  1. 使用实际业务场景进行测试,验证设计的合理性。
  2. 通过模拟操作流程,检查设计的健壮性和容错性。

例如我们将抽象出的报销单据实体,在整个线下流程中进行实测,检测有无缺少的字段,有无流程跑不通的情况,就像财务是不是拿到这张单据就可以不要领导签字,在实际与财务沟通后由于公司性质要求,所以必须要签字,因此报销单的实体中还需要增加标识属性,是否已打印出待签字单,用于区分是否完成了打印动作。

03 模拟案例演示:电商平台的实体设计

假设我们正在设计一个电商平台,该平台的核心功能是让用户能够浏览商品、加入购物车、下单购买商品,以及查看订单状态。为了实现这些功能,我们需要先设计好平台中的核心实体。以下是具体步骤及结果输出,展示如何一步步提炼出实体。

步骤一:识别关键实体

在设计实体之前,我们需要了解平台的主要功能和业务流程:

  1. 用户浏览商品: 用户可以浏览和搜索平台上的商品。
  2. 加入购物车: 用户可以将商品加入购物车,准备购买。
  3. 生成订单并支付: 用户在购物车中选择商品后,可以生成订单并完成支付。
  4. 查看订单状态: 用户可以在订单历史中查看已购买商品的状态和详情。

基于这些功能需求,我们识别出以下关键实体:

  • 用户(User): 平台的使用者。
  • 商品(Product): 在平台上出售的商品。
  • 购物车(Cart): 用户选择并准备购买的商品集合。
  • 订单(Order): 用户生成的购买记录。

步骤二:定义实体属性

确定了关键实体后,我们需要为每个实体定义属性,这些属性将帮助我们详细描述实体的特征和状态。

1)用户(User):

  • 用户ID(userID): 唯一标识一个用户的ID。
  • 用户名(username): 用户的名称。
  • 邮箱(email): 用户的邮箱地址,用于登录和联系。
  • 密码(password): 用户的账户密码。
  • 注册日期(registrationDate): 用户注册平台的日期。

2)商品(Product):

  • 商品ID(productID): 唯一标识一个商品的ID。
  • 商品名称(productName): 商品的名称。
  • 描述(description): 商品的详细信息。
  • 价格(price): 商品的售价。
  • 库存数量(stockQuantity): 当前商品的库存数量。
  • 创建日期(createdDate): 商品上架的日期。

3)购物车(Cart):

  • 购物车ID(cartID): 唯一标识一个购物车的ID。
  • 用户ID(userID): 关联到用户的购物车。
  • 商品列表(products): 当前购物车中所有商品的集合。

4)订单(Order):

  • 订单ID(orderID): 唯一标识一个订单的ID。
  • 用户ID(userID): 生成订单的用户ID。
  • 订单日期(orderDate): 订单生成的日期。
  • 订单状态(orderStatus): 订单的当前状态(如待付款、已付款、已发货、已完成)。
  • 商品列表(products): 订单中包含的商品列表。
  • 总金额(totalAmount): 订单中所有商品的总金额。

步骤三:设计实体之间的关系

在定义了实体和它们的属性之后,接下来是设计实体之间的关系。这些关系将决定平台的逻辑结构。

  • 用户与购物车(User-Cart):一个用户只有一个购物车(1:1 关系)。
  • 用户与订单(User-Order):一个用户可以有多个订单(1:多 关系)。
  • 购物车与商品(Cart-Product):一个购物车可以包含多个商品,一个商品可以出现在多个购物车中(多:多 关系)。
  • 订单与商品(Order-Product):一个订单可以包含多个商品,一个商品可以出现在多个订单中(多:多 关系)。

步骤四:验证实体设计

最后,我们通过模拟一些实际场景来验证实体设计的合理性和完整性。

1)用户浏览并加入商品到购物车:

  • 用户登录(User),浏览商品(Product),将商品加入购物车(Cart)。
  • 检查购物车中是否正确记录了所选商品。

2)用户生成订单并支付:

  • 用户从购物车中选择商品生成订单(Order),并进行支付。
  • 验证订单中包含的商品列表和总金额是否正确计算。
  • 检查订单状态是否从“待付款”变为“已付款”。

3)用户查看订单状态:

用户可以在订单历史中查看已生成的订单及其状态(OrderStatus)。

以上为大家演示的就是一个完整的实体找寻与定义的流程。

04 总结

可以看到这样的设计背后,我们一步步的把抽象的业务具体化得到了标准的可产品化的设计,而这也是高阶产品所必备的技能。

本文由人人都是产品经理作者【三爷茶馆】,微信公众号:【三爷茶馆】,原创/授权 发布于人人都是产品经理,未经许可,禁止转载。

题图来自Unsplash,基于 CC0 协议。

相关推荐

高中生又来卷我们了!手搓 Android 浏览器,可高度定制+脚本支持

回想一下,你曾经的暑假,是怎么度过的?可能是无尽的娱乐时光,或者是懒洋洋的休息日。然而,对于这位Gitee上的高中生来说,他选择在这个暑假里独立开发一款Android浏览器——Vie浏览器,...

网页加载CAD图纸的两个方案对比说明(网页浏览编辑DWG)

一.说明梦想控件提供两种技术在网页中加载CAD图纸,一个是OCX技术方案,另一个是HTML5技术方案,它们各有优缺点,用户需根据实际情况进行选择,下边分别说明一下。1、ocx技术方案(1)OCX技术是...

前后端分离的开源在线考试系统调试实战

开篇在我们的教育生涯中,或多或少的都接触过在线考试系统。例如大学里最常见的各种软件考试,上机考试等,那么有没有开源的这样的系统呢?当然是有了,今天就来调试个开源的在线考试系统。本文重点是调试,因为很多...

网友:小松鼠长大了!UC浏览器推出18周年专版logo引热议

近日,互联网厂商logo更新再次引发热议。作为国内手机浏览器的代表性厂商,UC浏览器的标志性logo小松鼠悄然发生了变化,在网友中引发了关注和讨论。依照UC微博官方账号的说法,这个全新的形象是UC18...

超多案例!谷歌AI模型Nano Banana的5个实用+趣味玩法

再不用这个AI修图神器,你的同行明天就把订单抢光了。谷歌刚放出的NanoBanana,能在一张照片里把背景、姿势、衣服一次换完,脸还是那张脸。实测把地铁照改成海边大片,只用一句话,三秒出图,不用PS来...

2025年最佳Windows数据恢复软件解决方案前5名

您是否正在寻找互联网上排名前五的WindowsPC最佳数据恢复软件解决方案?其实,网上有很多工具可以恢复已删除的文件。但并非所有应用程序都值得使用。值得信赖的文件恢复工具可以帮助您快速检索丢失、删...

电脑数据恢复软件推荐:10个顶级数据恢复软件分享

在数字化的工作与生活中,电脑文件误删除的情况时有发生,这不仅会引发我们的焦虑情绪,更可能导致重要数据的丢失。不过,幸运的是,借助正确的数据恢复软件,我们仍有机会找回那些被误删的文件。10个顶级数据恢复...

更懂国内APP的开源智能体!感知定位推理中文能力全面提升

更懂国内APP的开源智能体!感知定位推理中文能力全面提升“帮我点外卖,别点到广告位。”一句话,说出了多少人对手机自动化的真实期待。浙大和美团刚扔出来的开源项目UItron,就是冲着这句吐槽来的——它真...

美光首家推出采用EUV技术的1γ DDR5 DRAM芯片

美光科技宣布已开始向部分生态系统合作伙伴和客户出货1γ(1-gamma)16GbitDDR5DRAM芯片。美光声称,它是第一个采用1-gamma(1γ)节点的公司,该节点指的是DRAM工艺技术的第...

DDR4的PCB设计及仿真_ddr pcb

以下文章来源于鼎阳硬件智库,作者王彦武DDR4关键技术和方法分析1.1DDR4与DDR3不同之处相对于DDR3,DDR4首先在外表上就有一些变化,比如DDR4将内存下部设计为中间稍微突出,边缘变...

DDR4和DDR5内存的性能差距有哪些?

DDR4和DDR5内存的性能差距主要体现在带宽、延迟、能效及未来扩展性上,以下是关键差异的总结及选择建议:1.带宽与频率DDR4:主流频率为2133MHz–3600MHz,带宽约25.6–30.2...

DDR5内存一根和两根的区别,建议收藏观看。

大家好,我是海韵,DDR5内存条,单条和双条有什么区别,如何选择,DDR5单条和双条内存在性能上存在差距,单条内存保持在64个通道,但内部升级为32乘以2,虽然出口速度相同,但内部运行略有提升,...

Kingston FURY叛逆者DDR5 RGB CUDIMM内存评测 强势突破9000MT/s!

【ZOL中关村在线原创评测】当8000MT/s从当年的液氮超频艰难达成,到如今XMP轻松开启,DDR5内存频率的极限探索似乎看不到终点。在早先,我们曾为大家带来KingstonFURY品牌的叛逆者D...

SK海力士将在年内推出1bnm 32Gb DDR5内存颗粒

IT之家4月25日消息,据韩媒NEWSIS报道,SK海力士在今日的2024年一季度财报电话会议上表示将在年内推出1bnm32GbDDR5内存颗粒。32Gb颗粒意味着消费级的...

DRAM史上最大代际倒挂继续:三星将延长DDR4生产期限至2026年

IT之家8月6日消息,韩媒TheElec今天(8月6日)发布博文,报道称三星决定延长DDR41zDRAM的生产期限至2026年,一方面在DRAM史上最大代际倒挂中进...

取消回复欢迎 发表评论: