From f44e71d36177ab9acaf7b627179d32188459f2b4 Mon Sep 17 00:00:00 2001 From: AlexanderGarifullin Date: Wed, 18 Dec 2024 21:43:49 +0500 Subject: [PATCH] =?UTF-8?q?doc/codeforces/test=20=D0=94=D0=BE=D0=B1=D0=B0?= =?UTF-8?q?=D0=B2=D0=B8=D0=BB=20=D0=B8=D1=82=D0=BE=D0=B3=D0=BE=D0=B2=D1=83?= =?UTF-8?q?=D1=8E=20=D1=81=D1=85=D0=B5=D0=BC=D1=83=20=D0=B1=D0=B4=20+=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=B4=20=D0=B4=D0=BB=D1=8F=20=D0=B5=D0=B5=20=D0=BF?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D1=80=D0=BE=D0=B5=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/assets/FINAL_DB.png | Bin 0 -> 67286 bytes docs/diagram/diagram.md | 9 ++--- docs/diagram/sources.md | 69 +++++++++++++++++---------------------- 3 files changed, 32 insertions(+), 46 deletions(-) create mode 100644 docs/assets/FINAL_DB.png diff --git a/docs/assets/FINAL_DB.png b/docs/assets/FINAL_DB.png new file mode 100644 index 0000000000000000000000000000000000000000..6621d0277403053998bbd2636cf57b99c689ae69 GIT binary patch literal 67286 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 aZs~3I2mE8%y+?`vKA@l`pDKIg%Krhbpx=T3 literal 0 HcmV?d00001 diff --git a/docs/diagram/diagram.md b/docs/diagram/diagram.md index 39d82a0..bd5c698 100644 --- a/docs/diagram/diagram.md +++ b/docs/diagram/diagram.md @@ -1,8 +1,3 @@ # Итоговая база данных -1. Решил разделить группы четко на 2 вида: группы команд и группа пользователей -2. Жестко принимаю, что в команде может быть до 3 человек (потому что на командных олимпиадах можно участвовать максимум -втроем). -3. По хорошему стоило сделать дополнительные таблицы, может быть, объединить t_cf_users_groups и -t_cf_users_team_groups в одну таблицу. Однако я не до конца придумал, как обработать все случаи в таком виде. При -этом у меня небольшое приложение, и считаю что текущее разбиение вполне подходит. Большая нормализация усложнит проект. -![db](../assets/db_new.png) \ No newline at end of file +![db](../assets/FINAL_DB.png) + diff --git a/docs/diagram/sources.md b/docs/diagram/sources.md index 6ecb226..1b62d8c 100644 --- a/docs/diagram/sources.md +++ b/docs/diagram/sources.md @@ -2,66 +2,57 @@ ```PlantUML @startuml -' Указываем пакеты для схем package "security" { class t_users { +id: BIGSERIAL - +c_name: TEXT - +c_login: TEXT [UNIQUE] - +c_hashed_password: TEXT - +c_role: TEXT + +c_name: TEXT [NOT NULL] + +c_login: TEXT [UNIQUE NOT NULL] + +c_hashed_password: TEXT [NOT NULL] + +c_role: TEXT [NOT NULL] } class t_tokens { +id: BIGSERIAL - +c_token: TEXT - +c_revoked: BOOLEAN - +c_user_id: BIGINT + +c_token: TEXT [NOT NULL] + +c_revoked: BOOLEAN [NOT NULL] + +c_user_id: BIGINT [NOT NULL] } t_users --> t_tokens: "1 -> N" } package "codeforces" { - class t_cf_users_teams_groups { + class t_groups { +id: BIGSERIAL - +c_name: TEXT - +c_description: TEXT - +c_user_id: BIGINT + +c_name: TEXT [NOT NULL] + +c_description: TEXT [NULL] + +c_user_id: BIGINT [NOT NULL] } - class t_cf_teams { - +id: BIGSERIAL - +c_name: TEXT - +c_description: TEXT - +c_first_user_login: TEXT - +c_second_user_login: TEXT - +c_third_user_login: TEXT - +c_group_id: BIGINT + class t_teams { + +id: BIGSERIAL + +c_name: TEXT [NOT NULL] + +c_description: TEXT [NULL] + +c_group_id: BIGINT [NOT NULL] } - - class t_cf_users_groups { - +id: BIGSERIAL - +c_name: TEXT - +c_description: TEXT - +c_user_id: BIGINT + + class t_players { + +id: BIGSERIAL + +c_login: TEXT [UNIQUE NOT NULL] } - - class cf_users { - +id: BIGSERIAL - +c_name: TEXT - +c_description: TEXT - +c_group_id: BIGINT + + class t_team_player { + +id: BIGSERIAL + +c_team_id: BIGINT [NOT NULL] + +c_player_id: BIGINT [NOT NULL] } - - t_cf_users_teams_groups --> t_cf_teams: "1 -> N" - t_cf_users_groups --> cf_users: "1 -> N" } -' Внешние ключи между схемами -security.t_users --> codeforces.t_cf_users_teams_groups: "1 -> N" -security.t_users --> codeforces.t_cf_users_groups: "1 -> N" - +security.t_users --> codeforces.t_groups: "1 -> N" +codeforces.t_groups --> codeforces.t_teams: "1 -> N" +codeforces.t_teams --> codeforces.t_team_player: "1 -> N" +codeforces.t_players --> codeforces.t_team_player: "1 -> N" @enduml + ``` \ No newline at end of file