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

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
--------------------------------------------------------------------------------------
酒店管理公司的系统 会有很多酒店
怎么样设计最合理??

我现在的想法是每天记录一个价格。但这样数据量就太大了
如果代码和数据实现了也可以
...全文
135 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
为了满足你后面的条件,你只能每天记录一个价格!
剩下的只是提高你的查询效率问题!
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2006-03-21 04:20
社区公告
暂无公告