Yêu cầu thg 9 27, 2023 2:48 SA 692 0 2
  • 692 0 2
+3

Giúp em cải thiện database "Hệ thống đặt vé xem phim online" với ạ !!

Chia sẻ
  • 692 0 2

Xin chào mọi người, em đang có làm một đồ án môn học chủ đề về Book vé xem phim Online. Vấn đề của em gặp phải là làm sao để sử lí được việc 1 rạp thì có nhiều phim mỗi phim thì có nhiều ngày chiếu khác nhau mỗi ngày chiếu có nhiều giờ chiếu khác nhau mỗi giờ chiếu có ghế riêng biệt từng giờ. *Ví dụ: * vào ngày 15 phim A có suất chiếu lúc 7h, các ghế đã đặt là 1,2,3. Cũng là phim A nhưng có suất chiếu lúc 12h, phòng chưa có ghế nào được đặt. Vậy em xử lý database e như thế nào ạ !

2 CÂU TRẢ LỜI


Đã trả lời thg 10 16, 2023 10:36 SA
Đã được chấp nhận
0

Screenshot_1.png

Chia sẻ
Đã trả lời thg 9 27, 2023 3:53 SA
+8

Với quy mô của bài toán đặt vé xem phim chỉ có 1 rạp chiếu này thì mình nghĩ sẽ có các thực thể sau

  • Users: người dùng đặt phim
  • Films: thông tin phim (tên, đạo diễn, biên kịch, diễn viên, ngày công chiếu, điểm đánh giá, ......)
  • Cinema room: thông tin phòng chiếu phim của rạp đó (tên phòng, số ghế)
  • Film showtimes: thông tin lịch chiếu phim (chiếu phim gì - film_id, phòng chiếu nào, ngày chiếu, giờ chiếu)
  • User booking: thông tin đặt vé xem phim của người dùng

Screenshot_5.png

  • Theo sơ đồ quan hệ trên, có các mối quan hệ users 1-nhiều với user_bookings (1 user được đặt nhiều vé xem phim khác nhau), films 1-nhiều với film_showtimes (1 film có nhiều khung giờ chiếu), cinema_rooms 1-nhiều với film_showtimes (1 phòng chiếu sẽ chiếu trên nhiều khung giờ), film_showtimes 1-nhiều với user_bookings (1 khung giờ chiếu có nhiều người đặt)

  • Để đơn giản hóa bài toán, ở bảng cinema_rooms (thông tin phòng chiếu) mình có trường seats sẽ lưu toàn bộ tên ghế có trong phòng đó ngăn cách bởi dấu ','

  • Ví dụ: id: 'R3', room_name: 'Room 3', seats: 'G1,G2,G3,H6,H7,H8' Bản ghi thông tin phòng Room 3 có các ghế G1,G2,G3,H6,H7,H8. Chúng ta có thể cắt chuỗi ngăn cách bởi dấu phẩy hoặc thêm một cột số lượng ghế

  • Bảng film_showtimes có thể chứa thông tin của ngày chiếu của các phim, sắp xếp suất chiếu ở phòng nào, khi quản trị viên tạo suất chiếu, các bước validate phải thật kĩ tránh trường hợp trong 1 thời điểm, 1 phòng chiếu 2 phim

  • Bảng user_bookings chứa thông tin user đặt suất chiếu nào, giả dụ user đặt 3 ghế, lưu thông tin 3 ghế đó vào bảng

=> Trên thực tế, thiết kế DB cho hệ thống chiếu phim sẽ có rất nhiều thực thể tương ứng nhiều bảng, quan hệ để xử lí. Tuy nhiên với phạm vi bài toán bạn đang gặp phải, mình đây là cách đơn giản để bạn có thể giải quyết được

Chia sẻ
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí