如何在PlantUML中为实体关系图设置背景色?

问题描述 投票:0回答:1

我目前正在使用PlantUML来设计我的数据库的ERD。一切都很好,图是完整的,但是我想给我的实体添加一个背景色,以便在它们各自的模式中区分它们。

我想为实体添加一个背景色,或者用一个彩色的矩形来表示实体。

我试着用 skinparam 与实体的名称,与它的别名... ...

skinparam entity {
  backgroundColor<<usr>> DarkOrchid
}
skinparam entity {
  backgroundColor<<User>> DarkOrchid
}

这些都不行... 谁能帮帮我?

有谁能帮忙吗?

======编辑

按照要求,举个小例子。

'==========='
'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

这将产生以下的图表。

default diagram

我想看到这样的东西

colored diagram

或者至少是这样的

background rectangle diagram

entity-relationship diagram erd plantuml entity-relationship-model
1个回答
2
投票

entity 对象的皮肤参数。class ! 所以,你必须说 skinparam class 而不是 skinparam entity 来改变实体的背景色。

要对选定的实体应用特定的背景色,您必须为它们添加一个定型,以便它们能通过 skinparam class 命令。例如,您可以添加 <<personnel>>ProfessorStudent 实体和 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
© www.soinside.com 2019 - 2024. All rights reserved.