wiki:RelationalDesign

Version 1 (modified by 223075, 11 days ago) ( diff )

--

Логички и физички дизајн – Креирање база (со SQL DDL)

Ознаки

  • Со * се означени надворешни клучеви (FK).
  • Примарните клучеви (PK) се подвлечени болдирани.

Табели

Ентитети

  1. 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 (опционално)

  1. 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*)
  1. TRAINING ( _training_id_ , training_name, description, duration, intensity_level )
    • training_id (PK, bigint)
    • training_name (string, задолжително)
    • description (text, опционално)
    • duration (int, опционално)
    • intensity_level (string, опционално)
  1. 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)
  1. EVENT ( _event_id_ , event_name, description, date, time, location )
    • event_id (PK, bigint)
    • event_name (string, задолжително)
    • description (text, опционално)
    • date (date, задолжително)
    • time (time, задолжително)
    • location (string, задолжително)
  1. PACKAGE ( _package_id_ , package_name, price, num_classes )
    • package_id (PK, bigint)
    • package_name (string, задолжително)
    • price (decimal, задолжително)
    • num_classes (int, задолжително)
  1. 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)

  1. USER_CLASS ( _user_id*_, _class_id*_ )
    • user_id* → референцира до USER(user_id)
    • class_id* → референцира до CLASS(class_id)
    • Пример за релација books (USER ↔ CLASS, M:N)
  1. CLASS_TRAINING ( _class_id*_, _training_id*_ )
    • class_id* → референцира до CLASS(class_id)
    • training_id* → референцира до TRAINING(training_id)
    • Пример за релација is_scheduled_for (M:N)
  1. USER_EVENT ( _user_id*_, _event_id*_ )
    • user_id* → референцира до USER(user_id)
    • event_id* → референцира до EVENT(event_id)
    • Пример за релација registers (M:N)
  1. USER_PACKAGE ( _user_id*_, _package_id*_ )
    • user_id* → референцира до USER(user_id)
    • package_id* → референцира до PACKAGE(package_id)
    • Пример за релација buys (M:N)
  1. USER_MERCH ( _user_id*_, _merch_id*_ )
    • user_id* → референцира до USER(user_id)
    • merch_id* → референцира до MERCH_ITEMS(merch_id)
    • Пример за релација purchases (M:N)
  1. PACKAGE_CLASS ( _package_id*_, _class_id*_ )
    • package_id* → референцира до PACKAGE(package_id)
    • class_id* → референцира до CLASS(class_id)
    • Пример за релација is_for (M:N)

DDL скрипта за креирање и бришење на табелите

kreiranje.sql

DML скрипта за полнење на табелите со податоци

polnenje.sql

Дијаграм на табелите (DBeaver)

No image "BlissCore_Tables_DBeaver.png" attached to RelationalDesign

Attachments (3)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.