Changes between Initial Version and Version 1 of RelationalDesign


Ignore:
Timestamp:
02/11/25 17:54:38 (11 days ago)
Author:
223075
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • RelationalDesign

    v1 v1  
     1= Логички и физички дизајн – Креирање база (со SQL DDL) =
     2
     3== Ознаки ==
     4 - Со * се означени надворешни клучеви (FK).
     5 - Примарните клучеви (PK) се подвлечени болдирани.
     6
     7== Табели ==
     8
     9=== Ентитети ===
     10
     111. '''USER''' ( _user_id_ , username, email, password_hash, first_name, last_name )
     12   - user_id (PK, bigint)
     13   - username (string, задолжително)
     14   - email (string, задолжително)
     15   - password_hash (string, задолжително)
     16   - first_name, last_name (опционално)
     17   
     182. '''INSTRUCTOR''' ( _instructor_id_ , first_name, last_name, biography )
     19   - instructor_id (PK, bigint)
     20   - first_name (string, задолжително)
     21   - last_name (string, задолжително)
     22   - biography (text, опционално)
     23   - (Ако сакате 1:N со CLASS, ќе имате FK во CLASS → instructor_id*)
     24
     253. '''TRAINING''' ( _training_id_ , training_name, description, duration, intensity_level )
     26   - training_id (PK, bigint)
     27   - training_name (string, задолжително)
     28   - description (text, опционално)
     29   - duration (int, опционално)
     30   - intensity_level (string, опционално)
     31
     324. '''CLASS''' ( _class_id_ , date, start_time, end_time, location, capacity, seats_available, instructor_id* )
     33   - class_id (PK, bigint)
     34   - date (date, задолжително)
     35   - start_time (time, задолжително)
     36   - end_time (time, задолжително)
     37   - location (string, задолжително)
     38   - capacity (int, опционално)
     39   - seats_available (int, опционално)
     40   - instructor_id* → референцира до INSTRUCTOR(instructor_id)
     41
     425. '''EVENT''' ( _event_id_ , event_name, description, date, time, location )
     43   - event_id (PK, bigint)
     44   - event_name (string, задолжително)
     45   - description (text, опционално)
     46   - date (date, задолжително)
     47   - time (time, задолжително)
     48   - location (string, задолжително)
     49
     506. '''PACKAGE''' ( _package_id_ , package_name, price, num_classes )
     51   - package_id (PK, bigint)
     52   - package_name (string, задолжително)
     53   - price (decimal, задолжително)
     54   - num_classes (int, задолжително)
     55
     567. '''MERCH_ITEMS''' ( _merch_id_ , item_name, description, price, quantity_in_stock )
     57   - merch_id (PK, bigint)
     58   - item_name (string, задолжително)
     59   - description (text, опционално)
     60   - price (decimal, задолжително)
     61   - quantity_in_stock (int, опционално)
     62
     63=== Табели за M:N Релации (Bridge) ===
     64
     651. '''USER_CLASS''' ( _user_id*_, _class_id*_ )
     66   - user_id* → референцира до USER(user_id)
     67   - class_id* → референцира до CLASS(class_id)
     68   - Пример за релација books (USER ↔ CLASS, M:N)
     69
     702. '''CLASS_TRAINING''' ( _class_id*_, _training_id*_ )
     71   - class_id* → референцира до CLASS(class_id)
     72   - training_id* → референцира до TRAINING(training_id)
     73   - Пример за релација is_scheduled_for (M:N)
     74
     753. '''USER_EVENT''' ( _user_id*_, _event_id*_ )
     76   - user_id* → референцира до USER(user_id)
     77   - event_id* → референцира до EVENT(event_id)
     78   - Пример за релација registers (M:N)
     79
     804. '''USER_PACKAGE''' ( _user_id*_, _package_id*_ )
     81   - user_id* → референцира до USER(user_id)
     82   - package_id* → референцира до PACKAGE(package_id)
     83   - Пример за релација buys (M:N)
     84
     855. '''USER_MERCH''' ( _user_id*_, _merch_id*_ )
     86   - user_id* → референцира до USER(user_id)
     87   - merch_id* → референцира до MERCH_ITEMS(merch_id)
     88   - Пример за релација purchases (M:N)
     89
     906. '''PACKAGE_CLASS''' ( _package_id*_, _class_id*_ )
     91   - package_id* → референцира до PACKAGE(package_id)
     92   - class_id* → референцира до CLASS(class_id)
     93   - Пример за релација is_for (M:N)
     94
     95----
     96
     97== DDL скрипта за креирање и бришење на табелите ==
     98[attachment:kreiranje.sql "kreiranje.sql"]
     99
     100== DML скрипта за полнење на табелите со податоци ==
     101[attachment:polnenje.sql "polnenje.sql"]
     102
     103== Дијаграм на табелите (DBeaver) ==
     104[[Image(BlissCore_Tables_DBeaver.png, 600px)]]
     105