Version 1 (modified by 11 days ago) ( diff ) | ,
---|
Логички и физички дизајн – Креирање база (со SQL DDL)
Ознаки
- Со * се означени надворешни клучеви (FK).
- Примарните клучеви (PK) се подвлечени болдирани.
Табели
Ентитети
- USER ( _user_id_ , username, email, password_hash, first_name, last_name )
- user_id (PK, bigint)
- username (string, задолжително)
- email (string, задолжително)
- password_hash (string, задолжително)
- first_name, last_name (опционално)
- INSTRUCTOR ( _instructor_id_ , first_name, last_name, biography )
- instructor_id (PK, bigint)
- first_name (string, задолжително)
- last_name (string, задолжително)
- biography (text, опционално)
- (Ако сакате 1:N со CLASS, ќе имате FK во CLASS → instructor_id*)
- TRAINING ( _training_id_ , training_name, description, duration, intensity_level )
- training_id (PK, bigint)
- training_name (string, задолжително)
- description (text, опционално)
- duration (int, опционално)
- intensity_level (string, опционално)
- CLASS ( _class_id_ , date, start_time, end_time, location, capacity, seats_available, instructor_id* )
- class_id (PK, bigint)
- date (date, задолжително)
- start_time (time, задолжително)
- end_time (time, задолжително)
- location (string, задолжително)
- capacity (int, опционално)
- seats_available (int, опционално)
- instructor_id* → референцира до INSTRUCTOR(instructor_id)
- EVENT ( _event_id_ , event_name, description, date, time, location )
- event_id (PK, bigint)
- event_name (string, задолжително)
- description (text, опционално)
- date (date, задолжително)
- time (time, задолжително)
- location (string, задолжително)
- PACKAGE ( _package_id_ , package_name, price, num_classes )
- package_id (PK, bigint)
- package_name (string, задолжително)
- price (decimal, задолжително)
- num_classes (int, задолжително)
- MERCH_ITEMS ( _merch_id_ , item_name, description, price, quantity_in_stock )
- merch_id (PK, bigint)
- item_name (string, задолжително)
- description (text, опционално)
- price (decimal, задолжително)
- quantity_in_stock (int, опционално)
Табели за M:N Релации (Bridge)
- USER_CLASS ( _user_id*_, _class_id*_ )
- user_id* → референцира до USER(user_id)
- class_id* → референцира до CLASS(class_id)
- Пример за релација books (USER ↔ CLASS, M:N)
- CLASS_TRAINING ( _class_id*_, _training_id*_ )
- class_id* → референцира до CLASS(class_id)
- training_id* → референцира до TRAINING(training_id)
- Пример за релација is_scheduled_for (M:N)
- USER_EVENT ( _user_id*_, _event_id*_ )
- user_id* → референцира до USER(user_id)
- event_id* → референцира до EVENT(event_id)
- Пример за релација registers (M:N)
- USER_PACKAGE ( _user_id*_, _package_id*_ )
- user_id* → референцира до USER(user_id)
- package_id* → референцира до PACKAGE(package_id)
- Пример за релација buys (M:N)
- USER_MERCH ( _user_id*_, _merch_id*_ )
- user_id* → референцира до USER(user_id)
- merch_id* → референцира до MERCH_ITEMS(merch_id)
- Пример за релација purchases (M:N)
- PACKAGE_CLASS ( _package_id*_, _class_id*_ )
- package_id* → референцира до PACKAGE(package_id)
- class_id* → референцира до CLASS(class_id)
- Пример за релација is_for (M:N)
DDL скрипта за креирање и бришење на табелите
DML скрипта за полнење на табелите со податоци
Дијаграм на табелите (DBeaver)
Attachments (3)
-
kreiranje.sql
(4.9 KB
) - added by 10 days ago.
Скрипта за креирање табели
-
polnenje.sql
(2.9 KB
) - added by 10 days ago.
Скрипта за полнење табели
-
BlissCore_ER_Diagram.png
(46.6 KB
) - added by 10 days ago.
Relational Design
Download all attachments as: .zip
Note:
See TracWiki
for help on using the wiki.