Как я могу указать цвет фона на диаграмме сущность-связь в PlantUML - PullRequest
1 голос
/ 16 июня 2020

В настоящее время я использую PlantUML для разработки ERD моей базы данных. Все в порядке, диаграмма завершена, но я пытаюсь добавить цвет фона к своим объектам, чтобы указать guish их в соответствующих схемах.

Я думаю о цвете фона для сущностей, или, может быть, цветной прямоугольник, который содержит сущности внутри себя.

Я пробовал использовать 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

1 Ответ

2 голосов
/ 17 июня 2020

Объект 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...