Проєктування бази данних
Модель бізнес - об'єктів
ER-модель
Реляційна схема
Users
Поле | Тип даних | Ключ |
---|---|---|
id | SERIAL | PRIMARY KEY |
login | VARCHAR | NOT NULL |
first_name | VARCHAR | |
last_name | VARCHAR | |
password | VARCHAR | NOT NULL |
VARCHAR | UNIQUE | |
role_id | INT | FOREIGN KEY → Roles(id) |
Roles
Поле | Тип даних | Ключ |
---|---|---|
id | SERIAL | PRIMARY KEY |
alias | VARCHAR | NOT NULL |
Permissions
Поле | Тип даних | Ключ |
---|---|---|
id | SERIAL | PRIMARY KEY |
alias | VARCHAR | NOT NULL |
Permissiom_Roles
Поле | Тип даних | Ключ |
---|---|---|
role_id | INT | FOREIGN KEY → Roles(id) |
permission_id | INT | FOREIGN KEY → Permissions(id) |
Accesses
Поле | Тип даних | Ключ |
---|---|---|
user_id | INT | FOREIGN KEY → Users(id) |
dataset_id | INT | FOREIGN KEY → Datasets(id) |
permission_id | INT | FOREIGN KEY → Permissions(id) |
Datasets
Поле | Тип даних | Ключ |
---|---|---|
id | SERIAL | PRIMARY KEY |
title | VARCHAR | NOT NULL |
description | TEXT | |
rating | FLOAT | |
datafile_id | INT | FOREIGN KEY → Datafiles(id) |
category_id | INT | FOREIGN KEY → Categories(id) |
Datafiles
Поле | Тип даних | Ключ |
---|---|---|
id | SERIAL | PRIMARY KEY |
guid | UUID | UNIQUE |
alias | VARCHAR | |
mime | VARCHAR | |
description | TEXT | |
size | NUMERIC | |
uploadedAt | TIMESTAMP | DEFAULT NOW() |
user_id | INT | FOREIGN KEY → Users(id) |
Categories
Поле | Тип даних | Ключ |
---|---|---|
id | SERIAL | PRIMARY KEY |
name | VARCHAR | NOT NULL |
description | TEXT | |
parent_category_id | INT | FOREIGN KEY → Categories(id) |
Updates
Поле | Тип даних | Ключ |
---|---|---|
hash | TEXT | |
updated_at | TIMESTAMP | DEFAULT NOW() |
message | TEXT | |
difference | TEXT | |
user_id | INT | FOREIGN KEY → Users(id) |
dataset_id | INT | FOREIGN KEY → Datasets(id) |