需要有关数据库结构的想法/建议

时间:2011-01-13 19:04:25

标签: sql mysql database database-design database-schema

我们认为我们有100多家酒店,每家酒店至少有3种以上的房型。 我希望酒店的容量在过去一年和未来一年。我应该如何为最简单的使用设计数据库。

示例:

  

酒店有30个房间。 10 x“标准   房间“,10 x”复式房“,10 x”Delux   房间“我会继续这个例子   标准间。今天是:2011年1月13日我   想要保留2010年1月13日的记录   到2012年1月13日我会存储什么   数据库是可用的房间。某物   像这样(标准间):

     
    

13.01.2011:10

         

14.01.2011:9(表示当天售出的1个标准间)

         

2011年1月15日:8(意味着当天售出2间标准间)

         

16.01.2011:10(今天全部可用)

         

2011年1月17日:7(意味着当天售出3间标准间)

         

18.01.2011:10

  

等...

提前致谢。

2 个答案:

答案 0 :(得分:3)

让我试着总结一下你的问题,看看我是否理解它:

  

你有一套酒店。每个酒店   有一套房间。每个房间都属于   到一些可能的房间之一   类型。最低级别的细节   我们感兴趣的是这里的房间。

这表示酒店表,房间类型查询表和房间表:每个房间都会引用其相关的酒店和房间类型。

  

对于任何一天,房间都是   预订(已售)或未预订(让我们   为简单起见,请放弃部分日子   在此刻)。对于每一天   前一年和后一年   当天,你想知道多少   每种类型的房间都可以(未预订)在   每个酒店。

现在,由于酒店需要能够单独查看预订,因此您可能会维护预订表。但这些通常由房间,开始日期和一些夜晚来定义,这对于您所声明的报告目的并不理想:它不会在白天细分。

因此,您可能希望维护一个“房间预订日志”表,其中只包含每天预订的每个房间的记录:这可以像日期戳列和房间ID一样简单。

这种模式可让您通过聚合查询相对轻松地生成您所描述的输出(显示每天预订的房间总数,例如按酒店和房间类型分组)。该模型似乎也适用于OLAP cube

答案 1 :(得分:0)

我做过一次这样的家庭作业问题。基本上你需要至少3个表:一个用于容纳房间,一个用于保存预订,另一个表用于链接,因为它不是在给定时间保留的特定房间,它是特定类型的房间。