|
2 | 2 | ```PlantUML |
3 | 3 | @startuml |
4 | 4 |
|
5 | | -' Указываем пакеты для схем |
6 | 5 | package "security" { |
7 | 6 | class t_users { |
8 | 7 | +id: BIGSERIAL |
9 | | - +c_name: TEXT |
10 | | - +c_login: TEXT [UNIQUE] |
11 | | - +c_hashed_password: TEXT |
12 | | - +c_role: TEXT |
| 8 | + +c_name: TEXT [NOT NULL] |
| 9 | + +c_login: TEXT [UNIQUE NOT NULL] |
| 10 | + +c_hashed_password: TEXT [NOT NULL] |
| 11 | + +c_role: TEXT [NOT NULL] |
13 | 12 | } |
14 | 13 |
|
15 | 14 | class t_tokens { |
16 | 15 | +id: BIGSERIAL |
17 | | - +c_token: TEXT |
18 | | - +c_revoked: BOOLEAN |
19 | | - +c_user_id: BIGINT |
| 16 | + +c_token: TEXT [NOT NULL] |
| 17 | + +c_revoked: BOOLEAN [NOT NULL] |
| 18 | + +c_user_id: BIGINT [NOT NULL] |
20 | 19 | } |
21 | 20 | |
22 | 21 | t_users --> t_tokens: "1 -> N" |
23 | 22 | } |
24 | 23 |
|
25 | 24 | package "codeforces" { |
26 | | - class t_cf_users_teams_groups { |
| 25 | + class t_groups { |
27 | 26 | +id: BIGSERIAL |
28 | | - +c_name: TEXT |
29 | | - +c_description: TEXT |
30 | | - +c_user_id: BIGINT |
| 27 | + +c_name: TEXT [NOT NULL] |
| 28 | + +c_description: TEXT [NULL] |
| 29 | + +c_user_id: BIGINT [NOT NULL] |
31 | 30 | } |
32 | 31 |
|
33 | | - class t_cf_teams { |
34 | | - +id: BIGSERIAL |
35 | | - +c_name: TEXT |
36 | | - +c_description: TEXT |
37 | | - +c_first_user_login: TEXT |
38 | | - +c_second_user_login: TEXT |
39 | | - +c_third_user_login: TEXT |
40 | | - +c_group_id: BIGINT |
| 32 | + class t_teams { |
| 33 | + +id: BIGSERIAL |
| 34 | + +c_name: TEXT [NOT NULL] |
| 35 | + +c_description: TEXT [NULL] |
| 36 | + +c_group_id: BIGINT [NOT NULL] |
41 | 37 | } |
42 | | -
|
43 | | - class t_cf_users_groups { |
44 | | - +id: BIGSERIAL |
45 | | - +c_name: TEXT |
46 | | - +c_description: TEXT |
47 | | - +c_user_id: BIGINT |
| 38 | + |
| 39 | + class t_players { |
| 40 | + +id: BIGSERIAL |
| 41 | + +c_login: TEXT [UNIQUE NOT NULL] |
48 | 42 | } |
49 | | -
|
50 | | - class cf_users { |
51 | | - +id: BIGSERIAL |
52 | | - +c_name: TEXT |
53 | | - +c_description: TEXT |
54 | | - +c_group_id: BIGINT |
| 43 | + |
| 44 | + class t_team_player { |
| 45 | + +id: BIGSERIAL |
| 46 | + +c_team_id: BIGINT [NOT NULL] |
| 47 | + +c_player_id: BIGINT [NOT NULL] |
55 | 48 | } |
56 | | -
|
57 | | - t_cf_users_teams_groups --> t_cf_teams: "1 -> N" |
58 | | - t_cf_users_groups --> cf_users: "1 -> N" |
59 | 49 | } |
60 | 50 |
|
61 | | -' Внешние ключи между схемами |
62 | | -security.t_users --> codeforces.t_cf_users_teams_groups: "1 -> N" |
63 | | -security.t_users --> codeforces.t_cf_users_groups: "1 -> N" |
64 | | -
|
| 51 | +security.t_users --> codeforces.t_groups: "1 -> N" |
| 52 | +codeforces.t_groups --> codeforces.t_teams: "1 -> N" |
| 53 | +codeforces.t_teams --> codeforces.t_team_player: "1 -> N" |
| 54 | +codeforces.t_players --> codeforces.t_team_player: "1 -> N" |
65 | 55 | @enduml |
66 | 56 |
|
| 57 | +
|
67 | 58 | ``` |
0 commit comments