如何将背景颜色添加到 PlantUML 中的实体关系图中
How can I put background color to Entity-Relationship diagram in PlantUML
我目前正在使用 PlantUML 来设计我的数据库的 ERD。一切顺利,图表已完成,但我正在尝试为我的实体添加背景颜色,以在它们各自的模式中区分它们。
我正在考虑实体的背景颜色,或者可能是一个包含实体的彩色矩形。
我尝试将 skinparam
与实体名称及其别名一起使用...
skinparam entity {
backgroundColor<<usr>> DarkOrchid
}
skinparam entity {
backgroundColor<<User>> DarkOrchid
}
None 这些工作...有人可以帮忙吗?
谢谢
=========
编辑
应要求,举个小例子:
'==========='
'auth schema'
entity "User" as usr {
*id : number <<PK>>
--
password: varchar
salt: varchar
role: number <<FK>>
last_login_at : datetime
is_active : boolean
}
entity "User Role" as url {
*id : number <<PK>>
--
name: varchar
clearance_lvl: text
is_active : boolean
}
'====================='
'personnel data schema'
entity "Professor" as prof {
*id : number <<PK>>
--
name: varchar
office: integer
user_id: number <<FK>>
wage: number
last_login_at : datetime
is_active : boolean
}
entity "Student" as stu {
*id : number <<PK>>
--
name: varchar
semester: text
user_id: number <<FK>>
specialization: text
is_active : boolean
}
usr ||--o{ url
prof ||--|| usr
stu ||--|| usr
这会生成下图:
我想看到这样的东西:
或者至少是这样的:
entity
对象使用 class
的皮肤参数!因此,您必须说 skinparam class
而不是 skinparam entity
来更改实体的背景颜色。
要将某种背景颜色应用于选定的实体,您必须向它们添加构造型,以便可以通过 skinparam class
命令识别它们。例如,您可以将 <<personnel>>
添加到 Professor
和 Student
实体,将 BackgroundColor<<personnel>>
添加到 skinparam class
.
这应该满足您第一个示例的要求:
skinparam class {
BackgroundColor<<personnel>> #A9DCDF
}
'==========='
'auth schema'
entity "User" as usr {
*id : number <<PK>>
--
password: varchar
salt: varchar
role: number <<FK>>
last_login_at : datetime
is_active : boolean
}
entity "User Role" as url {
*id : number <<PK>>
--
name: varchar
clearance_lvl: text
is_active : boolean
}
'====================='
'personnel data schema'
entity "Professor" as prof <<personnel>> {
*id : number <<PK>>
--
name: varchar
office: integer
user_id: number <<FK>>
wage: number
last_login_at : datetime
is_active : boolean
}
entity "Student" as stu <<personnel>> {
*id : number <<PK>>
--
name: varchar
semester: text
user_id: number <<FK>>
specialization: text
is_active : boolean
}
usr ||--o{ url
prof ||--|| usr
stu ||--|| usr
要实现您的第二个示例,您可以将您的实体包装到包中并直接应用不同的背景作为 package
语句的一部分。
'==========='
'auth schema'
package "auth schema" #B4A7E5 {
entity "User" as usr {
}
entity "User Role" as url {
}
}
'====================='
'personnel data schema'
package "personnel data schema" #A9DCDF {
entity "Professor" as prof <<person>> {
}
entity "Student" as stu <<person>> {
}
usr ||--o{ url
prof ||--|| usr
stu ||--|| usr
我目前正在使用 PlantUML 来设计我的数据库的 ERD。一切顺利,图表已完成,但我正在尝试为我的实体添加背景颜色,以在它们各自的模式中区分它们。
我正在考虑实体的背景颜色,或者可能是一个包含实体的彩色矩形。
我尝试将 skinparam
与实体名称及其别名一起使用...
skinparam entity {
backgroundColor<<usr>> DarkOrchid
}
skinparam entity {
backgroundColor<<User>> DarkOrchid
}
None 这些工作...有人可以帮忙吗?
谢谢
========= 编辑
应要求,举个小例子:
'==========='
'auth schema'
entity "User" as usr {
*id : number <<PK>>
--
password: varchar
salt: varchar
role: number <<FK>>
last_login_at : datetime
is_active : boolean
}
entity "User Role" as url {
*id : number <<PK>>
--
name: varchar
clearance_lvl: text
is_active : boolean
}
'====================='
'personnel data schema'
entity "Professor" as prof {
*id : number <<PK>>
--
name: varchar
office: integer
user_id: number <<FK>>
wage: number
last_login_at : datetime
is_active : boolean
}
entity "Student" as stu {
*id : number <<PK>>
--
name: varchar
semester: text
user_id: number <<FK>>
specialization: text
is_active : boolean
}
usr ||--o{ url
prof ||--|| usr
stu ||--|| usr
这会生成下图:
我想看到这样的东西:
或者至少是这样的:
entity
对象使用 class
的皮肤参数!因此,您必须说 skinparam class
而不是 skinparam entity
来更改实体的背景颜色。
要将某种背景颜色应用于选定的实体,您必须向它们添加构造型,以便可以通过 skinparam class
命令识别它们。例如,您可以将 <<personnel>>
添加到 Professor
和 Student
实体,将 BackgroundColor<<personnel>>
添加到 skinparam class
.
这应该满足您第一个示例的要求:
skinparam class {
BackgroundColor<<personnel>> #A9DCDF
}
'==========='
'auth schema'
entity "User" as usr {
*id : number <<PK>>
--
password: varchar
salt: varchar
role: number <<FK>>
last_login_at : datetime
is_active : boolean
}
entity "User Role" as url {
*id : number <<PK>>
--
name: varchar
clearance_lvl: text
is_active : boolean
}
'====================='
'personnel data schema'
entity "Professor" as prof <<personnel>> {
*id : number <<PK>>
--
name: varchar
office: integer
user_id: number <<FK>>
wage: number
last_login_at : datetime
is_active : boolean
}
entity "Student" as stu <<personnel>> {
*id : number <<PK>>
--
name: varchar
semester: text
user_id: number <<FK>>
specialization: text
is_active : boolean
}
usr ||--o{ url
prof ||--|| usr
stu ||--|| usr
要实现您的第二个示例,您可以将您的实体包装到包中并直接应用不同的背景作为 package
语句的一部分。
'==========='
'auth schema'
package "auth schema" #B4A7E5 {
entity "User" as usr {
}
entity "User Role" as url {
}
}
'====================='
'personnel data schema'
package "personnel data schema" #A9DCDF {
entity "Professor" as prof <<person>> {
}
entity "Student" as stu <<person>> {
}
usr ||--o{ url
prof ||--|| usr
stu ||--|| usr