48 lines
989 B
Plaintext
48 lines
989 B
Plaintext
@startuml
|
|
' Entities definition
|
|
entity "Genres" as genres {
|
|
+ genre_id: INTEGER [PK]
|
|
--
|
|
genre_name: TEXT [UNIQUE, NOT NULL]
|
|
}
|
|
|
|
entity "Movies" as movies {
|
|
+ movie_id: INTEGER [PK]
|
|
--
|
|
title: TEXT [NOT NULL]
|
|
genre_id: INTEGER [FK]
|
|
duration: INTEGER [CHECK > 0]
|
|
}
|
|
|
|
entity "Halls" as halls {
|
|
+ hall_id: INTEGER [PK]
|
|
--
|
|
hall_name: TEXT [NOT NULL, UNIQUE]
|
|
capacity: INTEGER [CHECK > 0]
|
|
}
|
|
|
|
entity "Sessions" as sessions {
|
|
+ session_id: INTEGER [PK]
|
|
--
|
|
movie_id: INTEGER [FK]
|
|
hall_id: INTEGER [FK]
|
|
session_time: DATETIME [NOT NULL]
|
|
ticket_price: REAL [CHECK >= 0]
|
|
}
|
|
|
|
entity "Tickets" as tickets {
|
|
+ ticket_id: INTEGER [PK]
|
|
--
|
|
session_id: INTEGER [FK]
|
|
seat_number: INTEGER [CHECK > 0]
|
|
sold_at: TIMESTAMP [DEFAULT CURRENT_TIMESTAMP]
|
|
}
|
|
|
|
' Relationships
|
|
genres ||--o{ movies : "1 to Many"
|
|
movies ||--o{ sessions : "1 to Many"
|
|
halls ||--o{ sessions : "1 to Many"
|
|
sessions ||--o{ tickets : "1 to Many"
|
|
|
|
@enduml
|