我结业后进入了一家B端公司做产物,在邻近转正的时候,要查核的一点是SQL查询语言的运用本领,因为事情中需要常常查询数据来帮助阐明,而以往呆过的公司都不需要产物司理很懂数据库,只要会根基的SQL查询即可,就一直没有进一步相识它。
但此刻跟着公司对产物司理的要求越来越高,尤其是B端产物司理,懂根基的数据库设计是个很好的加分项。最近看到雇用网站上一家知名的B端公司jd里,对产物司理岗亭的个中一条要求是:“相识主流数据库的道理,具备较强的数据库设计本领”。这种本领我们可以领略为基本的数据库逻辑设计本领。
而数据库分为干系型数据库和非干系型数据库,本文主要接头的是干系型数据库。
干系型数据库是依据干系模子来建设的数据库,所谓干系模子就是“一对一、一对多、多对多”等干系模子,好比一个学号对应一个学生,一个班级对应多个学生,多个老师对应多个学生。一个干系型数据库是由二维表及其之间的接洽构成的一个数据组织。
非干系型数据库是一种相对松散且可以不凭据严格的布局类型举办存储的数据库。最常见的是键值对模子:存储的数据是一个个“键值对”,好比age:18,那么age这个键内里存的值就是18。
拿常识星球来说,用户发了一条动态,数据库会成立一个索引,并将此动态存入数据区中。假如用户删掉此动态,数据库首先会删掉索引区的索引,数据区中的动态按照数据库的存储机能和容量大概会保存一段时间,保存的那段时间的状态是假删除,也叫逻辑删除。假如用户再新宣布一条新的动态,新的索引和动态会直接包围上一条假删除的数据,此时就是真删除了,也叫物理删除。
为了防备包围数据后变真删除,还能这么设计:即把用户假删除的数据打上标志,存在另一个数据库表中,当要规复数据的时候再修改标志。
根基道理弄清楚了,接下来就要思考,怎么去设计了。
1. 什么是数据库设计?简朴来说,数据库设计是按照业务系统的详细需要,团结我们所选用的数据库打点系统,为这个业务系统结构出更优的数据存储模子。并成立好数据库中的表布局以及表与表之间的关联接洽的进程。使之能有效的对应系统中的数据举办存储,并可以高效的对已经存储的数据举办会见。
2. 为什么要举办数据库设计?数据库相当于一个大楼的地基,假如地基打好了,大楼就会稳固,不然就很容易轰然坍毁。
那么好的数据库设计和糟糕的数据库设计有什么特点呢?
3. 数据库设计的步调是什么?(1)需求阐明
之一步要举办需求阐明,梳理出系统中所要存储的数据属性、存储特点和生命周期。
好比有的数据有时效性,有的数据无时效性。有实效性的数据可以采纳逾期清理的 *** 来举办存储,好比小米云处事里的用户主动删除的照片、视频、便签等数据会进入接纳站保存一按期限,到期后接纳站自动清空。
尚有的数据增长很快数据量也很大,但不是焦点数据,那就可以回收分库分表的 *** 举办存储,也叫数据库表的程度拆分。
好比我前公司的一个大客户给他们的用户发了大量的邮件,系统会不绝的返回相关的状态信息数据,这些数据都在一张内外,当这些数据到达百万甚至千万级别时,用户查询数据的效率和速度城市低落,在界面上的浮现是会发明搜索或跳转页面的时候出格卡,这个时候对数据库举办分库分表就是个不错的方案。
举一个我以前做的RBAC权限打点成果为例子,这个成果包罗组织架构模块、脚色模块、菜单权限模块、人员打点模块这四个焦点模块,巨大一点的还会有其他模块,在这里不做说明。
我们设计好原型图之后,可以梳理出各个模块实体的主键、外键以及其他的属性。个中主键是独一标识一笔记录的,好比每个学生的学号是独一的,学号就是一个主键。外键是用来和其他表成立接洽用的,A表的外键往往是B表的主键。
组织架构模块:
包括的属性:组织id(一般不在前端展示)、组织机构范例、机构名称、单元范例、接洽人、邮箱、 *** 等等
可选独一标识的属性(又称主键):组织id或机构名称
存储特点:永久存储
脚色模块:
包括的属性:脚色id、脚色分类、脚色名称、脚色描写、脚色排序id、建设人、建设时间等等
可选独一标识的属性:脚色id或脚色名称
存储特点:永久存储
菜单权限模块:
包括的属性:菜单id、菜单排序id、菜单名称、菜单路径url等等
可选独一标识的属性:菜单id或菜单名称
存储特点:永久存储
人员打点模块:
包括的属性:用户id、姓名、单元职务、级别、手机号、登录名等等
可选独一标识的属性:人员id
存储特点:永久存储
(2)逻辑设计
第二步是逻辑设计,也是产物司理要重点进修的。
我们将上述模块的需求转化为数据库的逻辑模子,一般用ER图暗示。
浅易版可以在纸上画出来,作为初稿:
编辑导语:近些年,短视频的流量占据了大大都,各类短视频软件上的用户也到达了岑岭;不少行业选择举办融合,在短视频规模里举办摸索,连教诲行业也不破例;本文作者具体阐明白“教诲+短视频”的将来,我们一起来看...
编辑导读:如何通过中继器做出基本的菜单呢?本文作者通过本身的实操,从结果图到操纵步调都一一展开了阐明,并对进程中需要留意的问题举办了先容,但愿对你有所开导。 网上关于Axure9的教程数量繁多,但对...
编辑导语:风险部分一般分别有模子、计策、数据阐明等团队;固然各自存眷职责范畴的指标及绩效查核重点,但团队间密不行分,彼此协作配合担保某个产物或项目标风险可控;所以对小我私家成长有须要从整体出发,以全局...
编辑导语:跟着现代人糊口程度的提高,以及线上购物的越来越便捷,淘宝成为了各人买对象的首要选择。那么,淘宝的加购页面,各人必然不会生疏。本日,本文作者从设计师的角度出发,凭借自身的利用感觉,为我们解读了...
编辑导语:用户引流一直是各企业的重中之重,可是引流也是要准确你的用户群体,盲目标举办引流拉新反而会挥霍资源、增加事情量;本文作者分享了关于培训机构线上引流之用户画像,我们一起来看一下。 上个月,我刚...
编辑导读:挚友邀请,是操作已有种子用户的挚友干系举办裂变,扩充整个产物的用户数量,是运营常用手段之一。可是,邀请挚友的方法有许多,譬喻邀请码分享、海报分享、H5分享等等。哪项才是最优解呢?针对这个问题...