在 Typora 中,可以使用 Mermaid 语法来绘制实体关系图(ER 图),这是表示数据库表及其关系的一种常用方法。Mermaid 支持简单的实体关系图,通过表和箭头来展示表之间的关系。
以下是具体的步骤和代码示例:
1. 打开 Typora 并启用 Mermaid
确保在 Typora 的 偏好设置 -> Markdown 中启用了 Mermaid 支持。
2. 使用 Mermaid 语法绘制实体关系图
在 Typora 中,可以使用 Mermaid 的 erDiagram
语法来绘制实体关系图。以下是基本的 ER 图语法格式:
```mermaid
erDiagram
CUSTOMER {
int customer_id
string name
string email
}
ORDER {
int order_id
date order_date
float amount
}
CUSTOMER ||--o{ ORDER : places
ORDER }o--|{ PRODUCT : contains
PRODUCT {
int product_id
string name
float price
}
```
3. 语法说明
erDiagram
:定义一个实体关系图。CUSTOMER
、ORDER
、PRODUCT
:定义实体的名称,可以理解为数据库表的名称。{ ... }
:大括号中列出实体的属性。属性类型(如int
、string
、float
)可以标识字段类型。||--o{
:表示关系的类型,这里是“一个对多个”的关系。
4. 常见的关系符号
Mermaid 支持以下关系符号:
||--||
:一对一关系||--o{
:一对多关系}|--|{
:多对多关系o|--o|
:零对一关系o|--o{
:零对多关系
例如,CUSTOMER ||--o{ ORDER : places
表示一个客户可以下多个订单。
5. 更复杂的实体关系图
可以创建更复杂的 ER 图,通过定义更多的实体及其关系来展示数据库表的结构:
```mermaid
erDiagram
STUDENT {
int student_id
string name
date enrollment_date
}
COURSE {
int course_id
string course_name
int credits
}
ENROLLMENT {
int enrollment_id
date enrollment_date
float grade
}
STUDENT ||--o{ ENROLLMENT : enrolls_in
COURSE ||--o{ ENROLLMENT : has
```
6. 解释
- 在上面的图中,我们有
STUDENT
和COURSE
两个主要实体,以及ENROLLMENT
作为关系实体。 STUDENT ||--o{ ENROLLMENT : enrolls_in
表示每个学生可以在多个课程中注册。COURSE ||--o{ ENROLLMENT : has
表示每门课程可以有多个学生注册。
总结
在 Typora 中通过 Mermaid 可以方便地绘制简单的实体关系图,对于数据库设计和文档编写非常实用。