前言:

有没有觉得设计产品信息结构图很难,根本无从下手,不知所措?根本原因在哪?

本质原因在于你脑海中根本就没有面向对象的概念和对数据库表结构的理解。

别慌,猪哥这带你探寻从产品信息拆解为对象并将之追溯到数据库底层的整个过程,从而解决你的疑惑。

本文目录:

1、什么是面向对象?

2、什么是产品信息结构图?

3、什么是数据库表结构?

4、案例解析|三者的关系

1、什么是面向对象?

在面向对象程序设计中,对象指的是具体的某一个事物,在现实生活中能够看得见摸得着的事物。

他其实是一种思维方式,讲究的是将你看到的所有信息化整抽象为一个容器,这个容器可以装很多信息,也可以做很多事,而这个容器就是对象。例如,一台车是一个对象,它的属性有:型号、颜色、大小;方法有:载客、路上跑等。

程序概念:一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。类(class)和对象(object)是面向对象方法的核心概念,面向对象的编程思想一直力图使计算机语言中,对事物的描述与现实世界中该事物的本来面目尽可能的保持一致。

说人话:用计算机语言描述现实世界的万事万物

类:类是一个模板,它描述一类对象的行为和状态,是对一类事物描述,是抽象的、概念上的定义。

对象:对象是实际存在的该类事物的每个个体,是类的一个实例,由属性(同义词:状态、字段)和方法(同义词:行为、函数)构成。

属性:用于描述对象具备哪些特征。平常我们在页面上看到的字段信息,大部分说的就是这玩意儿。

方法:描述对象可以有哪些行为操作。逻辑运算、数据修改以及所有动作都是在方法中完成的。

2、什么是产品信息结构图?

梳理整个产品需要展示的信息,一般认为它是你通过分析整理得出的该产品各个页面应该展示的信息,同时也为后台上传数据提供依据。

结合面向对象思维:描述产品有哪些对象和字段。将你看到的页面信息,抽象处理到一个对象的维度,然后把同一个对象的信息放在一起。

咱们产品人画的信息结构图,不需要与开发同学设计的数据库表结构一模一样,按你的理解将其以单个对象维度抽离出来即可。

3、什么是数据库?

数据库是“按照一定的规则来存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。

说人话:数据库其实就是一个硬盘,可以向里面存东西,也可以从里面取东西。

依稀记得《java编程思想》中有段话,世间万事万物,皆为对象。很强大,也很有道理。数据库表结构,就是对象在程序语言的体现。咱们做系统设计,追踪到数据底层,就是一个又一个对象,以及对象之间的关系(ER图)。

3.1、数据库概念

0、数据库:每个表由一个名字标识。表包含带有列名的列,和记录数据的行。

1、产品设计本质:无非就是对数据库中各种表格的增删改查(CRUD)。

2、数据库类型:共分为关系型和非关系型,而对于PM的我们能搞懂关系型就可以了。

3、关系型数据库=表结构+表之间的关系。

4、关系型数据库:一种基于现实生活中对象与对象之间关系的数据库。主流关系型数据库:mysql、oracle、db2、sqlite。

5、非关系型数据库:一种相对松散且可以不按照严格的结构规范进行存储的数据库,通常使用json格式的键值对【key-value】形式表示和存储数据。主流非关系型数据库:MongoDB、CouchDB。应用场景:对存取要求比较高、并发处理比较高的场合。

6、sql:数据库操作语言,对数据库中的数据表进行增删改查的操作。增insert,删delete,改update,查select。

3.2、产品经理可以应用到设计上的思想

表结构:定义一个表的字段、类型、主键、外键、索引,这些基本的属性组成了数据库的表结构。

产品设计场景应用:只需要关注当前表中有哪些字段即可。所以跟技术沟通的时候,当前页面有哪些信息你可以汇总抽象起来,那就是一张表。信息中的各个细节就是表中的每个字段。

表之间的关联关系(ER图):表之间的关系共有四种【一对一、一对多、多对一、多对多】。小技巧,一般是两两对象相比较,A跟B什么关系,B跟A又是什么关系,从而得出结论。

技术上好处:级联删除

表之间的关联关系有什么用?可以有一个连带关系,举个例子,一个用户表,一个信息表,一个用户对应多条信息,当你删除用户的时候是不是这个用户的信息也要被删除,如果没有关联关系的话,你就要在删除用户前手工写条sql语句去删除信息表里的对应信息,如果有关联的话,就不用了,级联删除就可以了,只要删除用户,这个用户下面的信息也就没了。

产品设计场景应用:多渠道自动匹配信息

背景:我在A渠道某个页面填写了一些信息,其他不同渠道BCD页面又要填写部分类似的字段信息,很耗时耗力。功能:为了提高人效,我决定设计一个自动匹配的的功能。到底是一对一、一对多、多对一、多对多呢?经调研,A渠道参照物与BCD渠道都是一对一关系。那么我只需要设计一个ABCD渠道关系对应列表,拿主流渠道A的参照物与其他渠道做比较,就可以实现系统自动将A的信息同步给BCD。

PS:数据库表,对于产品经理我觉得了解其底层原理就好,能将其技术原理应用到产品设计上,可以让你思路更加清晰明了哦!(OMG,原来我的系统就是这几张表在发挥作用,太牛逼了,技术大哥们)。

4、案例解析|三者的关系

我们以下图的小轿车来举例,他有不同的的颜色、品牌、名称等信息,我们要来为他做产品设计,他的本质从产品信息结构图--对象--数据库底层是怎样的呢?一起探秘下。

产品信息结构图:有一个车的列表管理页面,包含颜色、品牌、名称三个信息。

面向对象思维:汽车为类(class),而具体的每个人车该类的对象(object),对象包含汽车的三个属性颜色、品牌、名称等。

数据库表结构:有一张表车,他有三个字段颜色、品牌、名称。

对照起来看就很容易理解了对不对?所以并不难,难的是什么?难的是如何把他们抽象成对象。

怎么才能具备对象思维呢?且听下回解析抽象、封装、继承、多态思维。

总结:

希望解决了你的疑惑,欢迎留言深度沟通。

「可以练习产品思维」有很多原创干货,推荐你关注他

计算机品牌企业关系图,揭秘你不会画信息结构图的本质相关推荐

  1. 计算机品牌企业关系图,AJ71C24-S3 画出PLC的I/O点与输入/输出设备的连接图或对应关系表, 三菱AJ71C24-S3 - 广州凌控...

    品牌: 三菱 产品名称: 计算机链接模块 型号: AJ71C24-S3 RS-232:1个,RS-422/485:1个. 传输速度:0.3-19.2kpbs. 计算机连接功能. 打印机/周连设备连接用 ...

  2. visio连接mysql数据库表_「数据库关系图」使用Visio 2010 画数据库中表与表的关系 - seo实验室...

    数据库关系图 1.在visio中新建数据库模型图 打开visio 2010,文件->新建->数据库->数据库模型图.建立数据库模型图之后,菜单栏多出一个菜单项"数据库&qu ...

  3. 产品认知:揭秘你不会画产品信息结构图的本质

    前言: 有没有觉得设计产品信息结构图很难,根本无从下手,不知所措?根本原因在哪? 本质原因在于你脑海中根本就没有面向对象的概念和对数据库表结构的理解. 别慌,博主这带你探寻从产品信息拆解为对象并将之追 ...

  4. echarts 结合ajax完成上下级关系图的绘制

    这10天一直在做一个关于企业关系图的模块,一开始的时候用公司的框架,但是做出来的效果很low,当然因为一开始的时候只是想着在做的过程中学习公司的框架.后来主管推荐我用echarts来做,于是经过这1个 ...

  5. Echarts绘制关系图

    文章目录 基本应用 节点重名问题解决方案 两点之间如何绘制多条连线 Echarts图随着浏览器窗口的变化而变化 今天要发博客,因为今天再不发,2020就过去啦! 最近需要用到Echarts绘制关系图, ...

  6. relation-graph实现企业架构图,关系图等(天眼查,企查查等企业架构图等实现)

    企业架构图,关系图等实现 业务需求 1.公司想要的效果图 2.relation-graph插件自带的dome效果图 3.实现效果图 官方文档地址 实现代码 接口返回数据格式(最最最重要点) 动态效果图 ...

  7. D3 企业关系图谱 企业构成图谱 股权穿透图 股权结构图 关联方认定图

    前言:之前说做了项目,这个项目黄了,公司跑路了,代码就拿出来分享,主要就是实现各种类似企查查的各种图谱,欢迎交流.目前已大致实现了: D3 企业关系图谱 企业构成图谱 股权穿透图 股权结构图 关联方认 ...

  8. 基于Vue与Cytoscape实现企业控股关系图

    1.需求 绘制如爱企查所示的关系图,主要展示控股关系,图形按照控股链路层次递进,链路最长的企业放置在最下面: 要求节点可拖动,拖动时连线和线上文本跟随拖动: 鼠标悬浮显示节点相关信息: 每条链路开始的 ...

  9. 仿企查查、天眼查关系图以及架构图(双向树,集团图谱,组织架构图谱,企业图谱,网络拓扑,人物关系网络)

    前言: 最近公司有一些新需求,要求仿照企查查,爱企查,天眼查等软件的关系图.股权结构图.公司架构图等作出相似的功能一开始考虑使用echarts来实现但是最后做出的效果与他们的效果太不一样也不太理想,偶 ...

最新文章

  1. C#只能lock 引用类型的值 (转载)
  2. 聚焦国际农民丰收节贸易会-张桃林:农业谋定开放新格局
  3. 【Windows 10 应用开发】使用快捷访问键
  4. [Map 3D开发实战系列] Map Resource Explorer 之四-- Map3D开发中的WPF
  5. 腾讯上海某实验室SQL面试题——查询最后任职信息
  6. Redis应用案例 查找某个值的范围
  7. java 记录用户_JavaWeb学习记录(六)——用户登录功能
  8. 内存对齐、内存对齐规则解释、内存对齐原理
  9. 树莓派 Pico ADC温度测量
  10. 巨高兴,自己的“万能数据库查询分析器”中英文 3.01版本 已经在国内6大软件下载网站发布
  11. 各种Java加密算法-非对称加密
  12. Framebuffer子系统【转】
  13. STAR法则的简历应用
  14. 网线传输速度测试_网络带宽和速度测试windows和linux用iperf工具
  15. python编程计算器_Python设计实现的计算器功能完整实例
  16. 清华大学计算机系哪个专业就业前景最好,清华大学有哪些专业最好就业?很多人都不知道!...
  17. 中国传媒大学计算机与网络安全学院研究生,林卫国 - 中国传媒大学 - 计算机与网络空间安全学院...
  18. Windows Phone 游戏 Galaga Legions DX 去除 XBL 服务
  19. Android中用到的MVP模式
  20. org.hibernate.StaleStateException:Batch update returned unexpected row count from update [0]; actua

热门文章

  1. Python基础——字典中由value查key的几点说明
  2. 2.10 WXS ---uni-app框架简介【uni-app从入门到精通在线教程(黄菊华-跨平台开发系列教程)】
  3. mysql 存储过程 rowcount_ORACLE中的SQL%ROWCOUNT与MySQL中的ROW_COUNT()的一点异同
  4. JAVA计算机毕业设计学生培训管理系统Mybatis+源码+数据库+lw文档+系统+调试部署
  5. 谁在纵容币圈乱象“李笑来”们?
  6. Freemarker模板的使用
  7. 1. 编写一个程序,不断要求用户输入两个数,直到其中的一个为0。对于每两个数,程序将使用一个函数来计算它们的调和平均数,并将结果返回给main(),而后者将报告结果。调和平均数指的是倒数平均值的倒数.
  8. 谷歌和甲骨文的服务器宕机,如何解决
  9. 三态门——概念,作用,原理
  10. 我们没得拼爹,只能拼命,但拿什么来拼命?