特定查询的关系数据库设计结构

时间:2014-02-21 21:03:22

标签: sql database

我有一个数据库问题,我想设计一个旅游数据库。他们跟踪 访客,门票和他们访问的景点(如宫殿或当地节目)。我们假设每位访客都必须购买一张入场券。

每张门票仅有一天有效,并且没有儿童或家庭等的特殊门票。但是有几类门票,特别是金票,银票和铜票。金票更贵,但旅行中的大多数景点都是免费的或者是 至少相当便宜。对于银牌和铜牌门票,大多数景点可能会收取大量额外费用。因此,计划花费一整天并尽可能多地乘坐游乐设施的人可能想要购买金票,而其他人则更喜欢银色或铜奖。

门票价格以及每个门票类别的每个景点的额外费用可能取决于季节,并可能随时间而变化。因此,在2013年春假期间可能会有一组价格,而在2013年夏季峰值季节可能会有另一组价格。每个景点都有一个独特的名称(例如,玻璃博物馆或金矿),每当访客访问景点时,数据库应存储有关访客持有的票证的信息以及访客进入景点的时间。

Visitors
(v_id,visitor_name)

Ticket_purchase
(v_id,t_id,date)

Tickets
(t_id,class,price,season)

Attractions
(t_id,attraction_name,goldextracost,silverextracost,bronzeextracost)

Attraction_visited
(v_id,t_id,attraction_name,datetime)

现在,如果我想输出购买青铜票的人数,但如果他们购买了金票,谁会省钱(因为他们访问了很多景点,他们必须在那天支付额外费用)< / p>

是否可以使用上表或我需要一些结构变化?

2 个答案:

答案 0 :(得分:0)

从我可以看到你改变它时覆盖票价... 因此,你无法回顾不同的票价...因为我可以改变票价 您必须在门票中添加创建新价格日期的字段。那么你不会删除旧票价。只是拉最新的。 和其他任何有价格的东西一样......你不能覆盖它......只需添加一个开始日期......

当你准备好了解这个人花了多少钱时,你可以看到他们在门票和景点上花了多少钱......

一旦你这样做了你想要的东西。

答案 1 :(得分:0)

我认为您拥有所需的信息。您正在记录当顾客访问景点时使用的票证,并且通过该数据,您可以获得票证等级并计算他们使用不同的票券访问景点时的成本。

相关问题