2012-08-01 35 views
6

Hệ thống đặt chỗ xe hơi là một câu hỏi rất phổ biến trong các cuộc phỏng vấn phát triển phần mềm. tôi thiết kế cấu trúc ER/cấu trúc OOP sau khi tôi đã hỏi này:Thiết kế phỏng vấn - Hệ thống đặt chỗ xe hơi

class Car/table có Id Car #, Type (Compact, Standard, vv), Loại, Kiểu Khách hàng có khách hàng Id #, vv Đặt chỗ là một bảng kết hợp lưu trữ Id xe, ID khách hàng và ngày mà xe được đặt trước. Vì lợi ích của sự đơn giản, chúng ta có thể giả định rằng chiếc xe chỉ có thể được đặt trước trong những ngày.

Đây là phần khó khăn khi tôi lúng túng - Điều gì sẽ xảy ra khi khách hàng 1 đặt một chiếc xe nhỏ gọn có Id Car 3 vào ngày 27 tháng 7. Điều gì sẽ xảy ra nếu Ô tô 3 được tính vào ngày 24 tháng 7. Các loại xe nhỏ gọn khác hiện có 24 tháng 7 và 27 tất cả đều được lấy. Vì vậy, khi Khách hàng 1 đến vào ngày 27 tháng 7, cuối cùng anh ta không có xe hơi.

Lỗ hổng mà tôi nghĩ là trong cách Xe và Khách hàng được kết hợp trong bảng Đặt chỗ. Có cách nào tốt hơn để mô hình hóa mối quan hệ này và cũng là trường hợp sử dụng thường xuyên như tìm thấy một chiếc xe sẵn sàng cho một ngày cụ thể, dành nó cho ngày đó, vv

Trả lời

2

Bạn có thể thêm lĩnh vực khác boolean để Car gọi Working. Nếu Car 3 là đạt rồi

  • thiết Working-false.
  • tìm kiếm trong số Reservation.
  • nếu có ở đó, sau đó tìm kiếm một loại xe khác thuộc loại đó trong Car.
  • nếu tìm thấy sau đó thay thế xe này bằng xe khác trong Reservation.
  • khác gọi cho khách hàng.
+1

Sau đó, câu hỏi đặt ra - vào thời điểm nào chúng tôi muốn kiểm tra xem Xe có đang hoạt động không? Một kịch bản hàng đêm chạy và thay thế tất cả những chiếc xe có tổng cộng/hư hỏng bằng những chiếc xe tương tự khác? –

+0

Bạn đã chọn sử dụng mô hình Entity-Relation. Một 'Car' và' Customer' chắc chắn là các thực thể. 'Reservation' chắc chắn là một mối quan hệ giữa một' Xe' và một 'Khách hàng'. Cho dù một 'Xe' là tổng cộng/hư hỏng chắc chắn là một' thuộc tính' của thực thể 'Xe'. Thiết kế này là đúng với các nguyên tắc của mô hình Entity-Relation và phải chịu được các trường hợp sử dụng khác nhau được ném vào nó. Bao gồm câu hỏi cuối cùng của bạn. –

Các vấn đề liên quan