产品经理的技术进阶:数据库逻辑设计( 三 )


本文插图
【组织架构表】
产品经理的技术进阶:数据库逻辑设计
本文插图
【角色表】
产品经理的技术进阶:数据库逻辑设计
本文插图
【关联表】
产品经理的技术进阶:数据库逻辑设计
本文插图
小结:第一范式和第二范式的区别在于有没有分出两张表 , 第二范式是说一张表中包含了多种不同的实体属性 , 那么必须要分成多张表 ,第三范式是要求已经分成了多张表 , 那么一张表中只能有另一张表中的主键 , 而不能有其他的任何信息(其他的信息一律用主键在另一表中查询) 。
其实除了以上三个范式 , 还有第四、第五、BC以及反范式化设计 , 这里不做扩展 , 有兴趣的可以自行查询了解 。
【产品经理的技术进阶:数据库逻辑设计】 综上 , 结合范式和ER图输出的表结构如下:
产品经理的技术进阶:数据库逻辑设计
本文插图
为了方便理解 , 表中的属性字段命名我写成了中文 , 实际上在数据库里都是英文 , 比如用户id可以命名为UserId,命名的工作在物理设计中进行 , 一般是架构师去处理 。
(3)物理设计
第三步是物理设计 , 一般是架构师做的事 , 产品经理简单了解下即可 , 同样也不做扩展说明 。

  • 选择合适的数据库管理系统
  • 定义数据库、表及字段的命名规范
  • 根据所选的数据库管理系统选择合适的字段类型 。
结尾
了解了以上的知识并不能使你精通数据库 , 尤其是像这种底层的东西 , 仅靠一篇文章是很难完全掌握的 。 比如在业务需求、性能和数据冗余之间达到一个平衡就需要深厚的数据库功底 。
但通过本文可以了解最基础的数据库逻辑设计应该怎么做 , 会对业务系统的技术实现有更深刻的认识 , 若有SQL基础则能更容易理解 。
本文由 @葩说产品 原创发布于人人都是产品经理 。 未经许可 , 禁止转载
题图来自Unsplash , 基于CC0协议