Skip to content

Проєктування бази данних

Модель бізнес - об'єктів

BuisnessObjectsModels

ER-модель

ERModel

Реляційна схема

Users

ПолеТип данихКлюч
idSERIALPRIMARY KEY
loginVARCHARNOT NULL
first_nameVARCHAR
last_nameVARCHAR
passwordVARCHARNOT NULL
emailVARCHARUNIQUE
role_idINTFOREIGN KEY → Roles(id)

Roles

ПолеТип данихКлюч
idSERIALPRIMARY KEY
aliasVARCHARNOT NULL

Permissions

ПолеТип данихКлюч
idSERIALPRIMARY KEY
aliasVARCHARNOT NULL

Permissiom_Roles

ПолеТип данихКлюч
role_idINTFOREIGN KEY → Roles(id)
permission_idINTFOREIGN KEY → Permissions(id)

Accesses

ПолеТип данихКлюч
user_idINTFOREIGN KEY → Users(id)
dataset_idINTFOREIGN KEY → Datasets(id)
permission_idINTFOREIGN KEY → Permissions(id)

Datasets

ПолеТип данихКлюч
idSERIALPRIMARY KEY
titleVARCHARNOT NULL
descriptionTEXT
ratingFLOAT
datafile_idINTFOREIGN KEY → Datafiles(id)
category_idINTFOREIGN KEY → Categories(id)

Datafiles

ПолеТип данихКлюч
idSERIALPRIMARY KEY
guidUUIDUNIQUE
aliasVARCHAR
mimeVARCHAR
descriptionTEXT
sizeNUMERIC
uploadedAtTIMESTAMPDEFAULT NOW()
user_idINTFOREIGN KEY → Users(id)

Categories

ПолеТип данихКлюч
idSERIALPRIMARY KEY
nameVARCHARNOT NULL
descriptionTEXT
parent_category_idINTFOREIGN KEY → Categories(id)

Updates

ПолеТип данихКлюч
hashTEXT
updated_atTIMESTAMPDEFAULT NOW()
messageTEXT
differenceTEXT
user_idINTFOREIGN KEY → Users(id)
dataset_idINTFOREIGN KEY → Datasets(id)

RelSchema