如何将背景颜色添加到 PlantUML 中的实体关系图

Pst*_*str 3 diagram erd entity-relationship plantuml

我目前正在使用 PlantUML 来设计数据库的 ERD。一切都很好,图表已经完成,但我正在尝试为我的实体添加背景颜色,以区分它们各自的模式。

我正在考虑实体的背景颜色,或者可能是一个将实体保存在其中的彩色矩形。

我尝试使用skinparam实体的名称及其别名......

skinparam entity {
  backgroundColor<<usr>> DarkOrchid
}
Run Code Online (Sandbox Code Playgroud)
skinparam entity {
  backgroundColor<<User>> DarkOrchid
}
Run Code Online (Sandbox Code Playgroud)

这些都不起作用...任何人都可以帮忙吗?

谢谢

========= 编辑

根据要求,举一个小例子:

'==========='
'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
Run Code Online (Sandbox Code Playgroud)

这会生成下图:

默认图

我想看到这样的东西:

彩色图

或者至少是这样的:

背景矩形图

kha*_*ito 5

该对象使用!entity的 Skinparams class因此,您必须说skinparam class而不是skinparam entity更改实体的背景颜色。

要将某种背景颜色应用于选定的实体,您必须向它们添加构造型,以便命令可以识别它们skinparam class。例如,您可以将实体添加<<personnel>>Professor和到。StudentBackgroundColor<<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
Run Code Online (Sandbox Code Playgroud)

要实现第二个示例,您可以将实体包装到包中,并直接应用不同的背景作为语句的一部分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
Run Code Online (Sandbox Code Playgroud)