我正在开发一个系统,人们可以预订门票和某些活动通行证(汽车通行证等)。
事件发生在一天或多天。传递可以链接到多个事件。他们可以有一个默认价格和通票率(所以如果你购买,比如3票,你可以获得1通票免费)。但是,应该能够基于每个事件更改这些默认参数。将传球链接到赛事时,我希望能够将传球链接到赛事的某些日子。我有点被困在这里,我原来的数据库设计似乎有缺陷。这是我现在拥有的:
tblPass
passID
name
price
ticketratio
tblEvent_pass
passID
eventID
price
ticketratio
然后最后,在订单完成后,保留传递的表格被放入:
tblEvent_pass_reservation
reservationID
passID
day
totalPaid
totalFree
然而,通过这种设置,我似乎一直遇到麻烦。有人可以看看这个并告诉我我做错了什么吗?我很乐意回答你对通行证概念的任何问题。非常感谢。
答案 0 :(得分:1)
我认为我的问题是正确的。 嗯,以我的观点来看,你的问题是你正在将传递与事件相关联而不是事件日表。
请看以下结构:
-tblPass (passID,...) -tblEvent (eventID,description,...) -tblEventDay (eventDayID,eventID,day(date),...)
现在您需要将您的活动日期与通行证表相关联,以便我们创建另一个eventday-pass(N到N)连接:
tblEventDay_Pass (eventDayID,passID,pricePaid,...)
如果您将“门票”视为基本单位,则必须将门票链接到活动日,例如“关闭的活动只能支付15.000人,因此您只能获得15.000张门票”。如果是这样,tblEventDay_Pass将获得ticketID,该ID与该事件的可用票证的ID相同。您需要创建另一个Ticket表并将其链接到事件表。
这样的事情: http://i.stack.imgur.com/EUrAM.jpg
希望它有所帮助!:)
答案 1 :(得分:1)
有几种方法可以对此进行建模:
您可以创建一个event_day表来存储每个事件所在的各个日期 (event_day_id,event_id的,日期时间)
然后是一个表,用于将传递映射到事件天pass_event_day (pass_id,event_day_id)