wiki:RelationalDesign

Релациска шема (со мапирачка трансформација)

Ознаки

  • Примарните клучеви се означени со bold и underline
  • Надворешните клучеви се означени со bold и * до заграда стои на кои табели референцираат
  • Задолжителни атрибути, односно not null со bold

Табели

  • Users(user_id, user_username, user_password, user_phone_number ,user_name, user_surname, user_email, user_role )
  • Employee(user_id*(Users),employee_id)
  • Client(user_id*(Users),client_id)
  • Genre(genre_id, genre_name)
  • Movie(movie_id, movie_name, movie_age_category,movie_production, movie_film_director, movie_cast,movie_time_duration)
  • Firm(firm_id, firm_city, firm_adress, firm_name)
  • Auditorium(auditorium_id,firm_id*(Firm),auditorium_name, auditorium_capacity)
    • Секундарен клуч: firm_id е референца кон Firm и има not null constraint поради тотално учество на Auditorium во релацијата has
  • Movieprojection(projection_id,movie_id*(Movie), projection_movie_start, projection_movie_end, projection_screening_date, projection_type, projection_price)
    • Секундарен клуч: movie_id е референца кон Movie и има not null constraint поради тотално учество на MovieProjection во релацијата has
  • Works_in (firm_id*(Firm),user_id*(Employee),works_from,works_to)
    • Композитен примарен клуч:(firm_id,user_id)
  • Payment_type(payment_id, payment_type)
  • Payment(payment_id,payment_type_id*(Payment_type),user_id*(Client),reservation_id*(Reservation),payment_date)
    • Секундарен клуч: payment_type_id е референца кон Payment_type и има not null constraint поради тотално учество на Payment во релацијата is
    • Секундарен клуч: user_id е референца кон Client и има not null constraint поради тотално учество на Paymentt во релацијата pays
    • Секундарен клуч: reservation_id е референца кон Reservation и има not null constraint поради тотално учество на Payment во релацијата for
  • Seat(seat_id,auditorium_id*(Auditorium),seat_number, seat_row_number)
    • Композитен примарен клуч:(seat_id, auditorium_id)
    • Слаб клуч клуч: seat_id
    • Секундарен клуч: auditorium_id е референца кон Auditorium и има not null constraint поради тотално учество на Seat во релацијата inside.
  • Reservation(reservation_id,payment_type_id*(Payment_type),user_id*(Client),(seat_id,auditorium_id)*(Seat),projection_id*(MovieProjection),reservation_end_date)
    • Секундарен клуч: payment_type_id е референца кон Payment_type и има not null constraint поради тотално учество на Reservation во релацијата paid
    • Секундарен клуч: user_id е референца кон Client и има not null constraint поради тотално учество на Reservation во релацијата has
    • Секундарен клуч: projection_id е референца кон MovieProjection и има not null constraint поради тотално учество на Reservation во релацијата for
    • Секундарен клуч: (seat_id,auditorium_id) е референца кон Seat и има not null constraint поради тотално учество на Reservation во релацијата for
  • Controles (user_id*(Employee),projection_id*(MovieProjection))
    • Композитен примарен клуч:(employee_id, projection_id)
  • Is(movie_id*(Movie),genre_id*(Genre))
    • Композитен примарен клуч:(movie_id, genre)
  • Gives(projection_id_*(MovieProjection),auditorium_id*(Auditorium),seat_limitation)
    • Композитен примарен клуч:(projection_id, auditorium_id)

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

kreiranje.sql

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

polnenje.sql

Релациски дијаграм изваден од DBeaver

Last modified 2 years ago Last modified on 01/20/22 15:41:40

Attachments (4)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.