酒店系统表设计问题,有点难度.

potter2002 2006-03-21 04:20:15

功能描述:尽可能考虑数据库大小及方便操作方面考虑

酒店表 s_hotels
字段 h_id 酒店ID
h_name 酒店名
h_level 星级
房型表 s_roomtype
字段 r_id 房型ID
r_name 房型名
r_h_id 酒店ID
价格表 s_price
???这个怎么设计??

数据可能是这样的
日期 价格 房型ID
2006-01-01 500 1
2006-01-02 500 1
2006-01-03 500 1
2006-01-04 500 1
2006-01-05 700 1
2006-01-06 500 1
2006-01-07 500 1
2006-01-08 800 1
2006-01-09 500 1
2006-01-10 500 1

如果查询2006-01-01 到 2006-01-06 要这样显示
2006-01-01 500
2006-01-02 500
2006-01-03 500
2006-01-04 500
2006-01-05 700
2006-01-06 500
--------------------------------------------------------------------------------------
酒店管理公司的系统 会有很多酒店
怎么样设计最合理??

我现在的想法是每天记录一个价格。但这样数据量就太大了
如果代码和数据实现了也可以
...全文
194 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
iamltd 2006-03-23
  • 打赏
  • 举报
回复
总数据量你还想省?
别太贪心了。

为了效率,往往要浪费空间的。这个办法已经很节约了
potter2002 2006-03-23
  • 打赏
  • 举报
回复
那就结帐吧。。。有点舍不得我的分
iamltd 2006-03-22
  • 打赏
  • 举报
回复
很简单,每个月一张表,比如叫price_200512,price_200511这样的名字。每个表数据格式一样。为了数据准确性,酒店表里面还要增加一个字段,表明是什么时候的房型。这样才方便和price关联。
要查询以前的价格就用
select * from price_200512 p inner join s_hotel on s.hotel.r_id=p.r_id
union all
select * from price_200511 p inner join s_hotel on s.hotel.r_id=p.r_id
.....

只要你不是经常会查询到7/8个月以前的数据,SQL Server处理这种数据还是很快的。不用考虑效率问题。
potter2002 2006-03-22
  • 打赏
  • 举报
回复
价格要一直保存 表分区?怎么样用的?可以说明白一点么?
potter2002 2006-03-22
  • 打赏
  • 举报
回复
不错的想法
不过总数据量还是没有变化...方便一下操作
两到三个月一张表我觉得还可行的

哪位还有更好的想法?
cqhunter 2006-03-21
  • 打赏
  • 举报
回复
将价格表分区,我只能想到这个了,这还要价格不是经常变了
日期范围 价格 房型ID
iamltd 2006-03-21
  • 打赏
  • 举报
回复
可以将价格表进行分区,你也不会经常要查三个月或者半年前的价格数据吧?
potter2002 2006-03-21
  • 打赏
  • 举报
回复
这样一年下来数据不是几十G ? 那样不行呀
尚和空四 2006-03-21
  • 打赏
  • 举报
回复
在优化查询上下功夫了.
JonasFeng 2006-03-21
  • 打赏
  • 举报
回复
为了满足你后面的条件,你只能每天记录一个价格!
剩下的只是提高你的查询效率问题!

22,302

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧