summaryrefslogtreecommitdiff
path: root/assignments/1/question-5-after.puml
blob: ff5c66c9304a97104f523f528682bf0ff2b7bf39 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
@startuml
!define Table(name,desc) class name as "desc" << (T,#FFAAAA) >>
!define primary_key(x) <b>x</b>
!define foreign_key(x) <color:blue>x</color>
!define composite_key(x,y) <b>x, y</b>
!define unique(x) <color:green>x</color>
!define not_null(x) <u>x</u>
hide methods
hide stereotypes

' relations
Table(employees, "employee") {
  primary_key(id) integer
  foreign_key(department_id) integer
  foreign_key(project_id) integer
  hired_at datetime
  title varchar[255]
  area varchar[255]
  salary decimal
}

Table(departments, "department") {
  primary_key(id) integer
  foreign_key(manager_id) integer
  budget decimal
}

Table(projects, "project") {
  primary_key(id) integer
  foreign_key(department_id) integer
  budget decimal
}

Table(phones, "phone") {
  primary_key(number) varchar[255]
  foreign_key(employee_id) integer
}

Table(offices, "office") {
  primary_key(number) varchar[255]
  foreign_key(employee_id) integer
}

employees --> departments : "belongs to"
employees --> phones : "has one"
employees --> offices : "has one"
employees --> projects : "works on"
projects --> departments : "belongs to"
departments --> employees : "has one manager"
@enduml