This repository was archived by the owner on Dec 27, 2024. It is now read-only.
File tree Expand file tree Collapse file tree 6 files changed +79
-1
lines changed
Expand file tree Collapse file tree 6 files changed +79
-1
lines changed File renamed without changes.
Original file line number Diff line number Diff line change @@ -38,4 +38,4 @@ t_cf_users:
3838
3939# Примерная схема (не самая красивая)
4040
41- ![ context] ( ../assets/db_base_schema .png )
41+ ![ context] ( ../assets/db_old .png )
Original file line number Diff line number Diff line change 1+ # Итоговая база данных
2+ 1 . Решил разделить группы четко на 2 вида: группы команд и группа пользователей
3+ 2 . Жестко принимаю, что в команде может быть до 3 человек (потому что на командных олимпиадах можно участвовать максимум
4+ втроем).
5+ 3 . По хорошему стоило сделать дополнительные таблицы, может быть, объединить t_cf_users_groups и
6+ t_cf_users_team_groups в одну таблицу. Однако я не до конца придумал, как обработать все случаи в таком виде. При
7+ этом у меня небольшое приложение, и считаю что текущее разбиение вполне подходит. Большая нормализация усложнит проект.
8+ ![ db] ( ../assets/db_new.png )
Original file line number Diff line number Diff line change 1+ # Итоговая база данных
2+ ``` PlantUML
3+ @startuml
4+
5+ ' Указываем пакеты для схем
6+ package "security" {
7+ class t_users {
8+ +id: BIGSERIAL
9+ +c_name: TEXT
10+ +c_login: TEXT [UNIQUE]
11+ +c_hashed_password: TEXT
12+ +c_role: TEXT
13+ }
14+
15+ class t_tokens {
16+ +id: BIGSERIAL
17+ +c_token: TEXT
18+ +c_revoked: BOOLEAN
19+ +c_user_id: BIGINT
20+ }
21+
22+ t_users --> t_tokens: "1 -> N"
23+ }
24+
25+ package "codeforces" {
26+ class t_cf_users_teams_groups {
27+ +id: BIGSERIAL
28+ +c_name: TEXT
29+ +c_description: TEXT
30+ +c_user_id: BIGINT
31+ }
32+
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
41+ }
42+
43+ class t_cf_users_groups {
44+ +id: BIGSERIAL
45+ +c_name: TEXT
46+ +c_description: TEXT
47+ +c_user_id: BIGINT
48+ }
49+
50+ class cf_users {
51+ +id: BIGSERIAL
52+ +c_name: TEXT
53+ +c_description: TEXT
54+ +c_group_id: BIGINT
55+ }
56+
57+ t_cf_users_teams_groups --> t_cf_teams: "1 -> N"
58+ t_cf_users_groups --> cf_users: "1 -> N"
59+ }
60+
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+
65+ @enduml
66+
67+ ```
Original file line number Diff line number Diff line change 1+ # Небольшой список вопрос
2+ 1 . Может не хранить токен в бд? По идее мы не должны отвечать за хранение токена. За это отвечает пользователь.
3+ 2 . Как в итоге быть с таблицами по группам? Оставить как есть, или что-то поменять?
You can’t perform that action at this time.
0 commit comments