利用Mermaid在Markdown中高效构建数据库ER图
1. 为什么选择Mermaid画ER图第一次接触数据库设计时我用Visio画了三天ER图结果产品经理说要改两个字段所有连线都得重新调整。直到发现Markdown里用Mermaid画ER图的玩法才明白什么叫降维打击。这个组合有多香我来给你算笔账零成本上手不用装任何专业软件有个能写Markdown的编辑器就行VS Code、Typora都支持版本控制友好所有图表都用纯文本定义Git可以完美追踪每次修改团队协作神器再也不用传.vsdx文件了直接贴代码片段到文档里实时渲染保存文件瞬间就能看到最新版图表没有保存-导出-插入的繁琐流程最让我惊喜的是用Mermaid语法定义的表关系读起来就像在写自然语言。比如用户 ||--o{ 订单 : 创建这行代码不用解释你也知道这表示一个用户可以创建多个订单的关系吧2. Mermaid ER图语法详解2.1 基础结构定义先看个最简单的用户表定义示例erDiagram USER { int id PK string username datetime created_at }这里有几个关键点需要注意用erDiagram声明图表类型表名用大写是行业惯例但不是强制要求字段类型写在字段名前面更符合SQL习惯PK后缀表示主键Primary Key实际项目中更常见的写法是这样的erDiagram CUSTOMER ||--o{ ORDER : places CUSTOMER { string customer_id PK string name string email } ORDER { int order_id PK string customer_id FK datetime order_date }2.2 关系类型全解析Mermaid支持六种主要关系表示法我用电商系统举例说明一对一1:1用户 ||--|| 身份证 : 持有竖线|表示仅一个适用于主表-从表场景一对多1:N店铺 ||--o{ 商品 : 售卖右边的o表示零或多个大括号{指向多的一方多对多M:N学生 }o--o{ 课程 : 选修两边都用大括号实际数据库需要中间表非强制关系用户 }|--|| 会员卡 : 拥有右边的竖线换成}表示可选自引用关系员工 }|--o{ 员工 : 上级表名重复使用即可多字段关联用(字段1,字段2)指定复合键3. 高级技巧与实战案例3.1 样式自定义技巧很多人不知道Mermaid其实支持样式调整比如这个给主键加颜色的例子erDiagram PRODUCT { int product_id PK string name float price } classDef pk fill:#f9f,stroke:#333; class PRODUCT.product_id pk;常用样式属性包括fill填充色stroke边框色stroke-width边框粗细font-size文字大小3.2 复杂系统建模实例来看个稍微复杂点的博客系统ER图erDiagram USER ||--o{ POST : 作者 USER { int user_id PK string username string email } POST ||--o{ COMMENT : 包含 POST { int post_id PK int user_id FK string title text content } COMMENT { int comment_id PK int post_id FK int user_id FK text content } POST }o--o{ TAG : 关联 TAG { int tag_id PK string name }这个例子展示了用户与文章的1:N关系文章与评论的1:N级联关系文章与标签的M:N关系三种不同实体的主外键设计4. 团队协作最佳实践4.1 版本控制策略我们团队用Git管理ER图时遵循这些规范每个数据模型单独一个.md文件文件名按[日期]-[模块名].md格式如20240501-user-system.md重大变更通过分支管理用Git提交信息说明修改原因例如feat(user): 添加手机号字段 fix(order): 修正金额字段类型为decimal(10,2)4.2 文档结构建议一个完整的数据模型文档应该包含# 用户模块ER图 ## 业务背景 说明该模块的核心业务逻辑... ## 实体关系图 mermaid erDiagram USER ||--o{ ORDER : places USER { int user_id PK string phone }字段说明字段名类型必填说明user_idint是自增主键phonevarchar(11)是带国际区号变更记录2024-05-01 新增手机号字段2024-04-15 初始版本这种结构既方便技术评审也利于后续维护。有个小技巧在VS Code里安装Mermaid插件后可以直接在预览窗口右键导出为PNG或SVG方便插入到PPT中演示。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2438423.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!