我正在使用CakePHP 2.0和MySQL进行开发。
我正在尝试创建一个小巴预订解决方案,但我不确定我是否采用了正确的方法。
我们有一辆可以预订的小巴。在这个阶段,我并不担心预订时间的重叠。我为小巴的房产做了一张桌子,但我需要确定小巴和乘客之间的关系。
每辆小巴可以有许多(16)名乘客。 乘客可乘坐多辆小巴(今天一辆,明天一辆等)。
此外,我需要能够将乘客的类型设置为乘客或司机。 这需要三张桌子吗?我在想:
Buses table (id, description)
Users table (id, firstName)
Passengers table (buses.id, users.id, passenger_type)
任何建议都将受到赞赏。
答案 0 :(得分:2)
我想我会引入一个Trip
表并将总线分配给Trip的实例。然后引入一个联结表来解决旅行和乘客之间的多对多关系。
答案 1 :(得分:0)
鉴于一辆小巴可以为很多乘客提供服务,而一名乘客可以乘坐许多小巴路线,那么你所拥有的就是多对多(从一个到另一个)的关系。
因此,您需要三个表:一个用于乘客,一个用于小巴,另一个通过关键关联关联前两个:
Passenger_Minibus
------------------
PassengerID INT NOT NULL
MinibusID INT NOT NULL
答案 2 :(得分:0)
看起来像这样:
一张存放小巴容量的表格。 (CapacityId)
一张存储乘客信息的表格。 (PassengerId,姓名,地址等)
一张存储小巴信息的表格。 (MiniBusId,CapacityId,Make,Model,Year,color等..)
一个预订信息表(BookingId,日期,时间,FromDestination,ToDestination等)
TripSchedule的一个表(TripId,BookingId,MinibusId)(只有在每次预订时有多个总线,否则您可以将MiniBusId添加到BookingInformation表并摆脱此表)
一个用于存储TripId和PassengerId的链接表。 (如果每次预订只有一辆小巴,请添加BookingId而不是TripId)