数据库设计 不同时间不同价格 建议

eechen的粉丝 发布于 2013/11/20 13:36
阅读 441
收藏 3

卖面包 每天价格都不一样

例如:

11月1日-11月5号 19元钱一公斤

11月6日-11月20日 25元一公斤

大家设计这样的 数据库是如何才最优?



加载中
0
魔力猫
魔力猫

面包ID,日期,价格,重量标准

Oracle中提供了时间间隔类型,可以用这个将时间间隔进行记录,那样可以减少一些记录,只要记录一个起始时间和持续时间就够了。


魔力猫
魔力猫
回复 @YeaWind : 我也没说不可以呀。
eechen的粉丝
eechen的粉丝
回复 @魔力猫 : 其实3天一样一条也可以
魔力猫
魔力猫
回复 @YeaWind : 我也没说必须用Oracle,只是稍微提了一下。比如你们的面包价格按天计算,其他数据库一天1条记录,哪怕3天全一样也得3条。Oracle则可以1条记录搞定。
eechen的粉丝
eechen的粉丝
不用ORACLE,是小项目MYSQL
0
宏哥
宏哥

引用来自“魔力猫”的答案

面包ID,日期,价格,重量标准

Oracle中提供了时间间隔类型,可以用这个将时间间隔进行记录,那样可以减少一些记录,只要记录一个起始时间和持续时间就够了。


居然有这种字段.NND. 

我以前用了很久oracle都不知道.

宏哥
宏哥
回复 @mark35 : 是的, 就是这个
mark35
mark35
pg是最近一个版本才提供了类似字段类型,好像是range类型
泡不烂的凉粉
泡不烂的凉粉
@宏哥 这有什么难的, 做一个类似于调价表的结构. 每次搜索价格都是从当前时间开始,向之前价格搜索. 最接近当前时间的价格就是当前价.
宏哥
宏哥
回复 @郭煜 : 数据角度来说, 是等价的. 但是, 数据类型会对应一些操作符, 非常便于计算. 应该是从便利的角度来看.
乌龟壳
乌龟壳
回复 @宏哥 : 想起来了,判断时间范围是否重叠要判断四次,用这种类型估计就一次就可以了,有空去研究下。
下一页
0
x
xu徐

关注下。。

0
0
wartskcaj
wartskcaj

两个表

一个表存储面包的基本信息,里面有个基础价格字段,面包价格默认就是该字段的值

另一个表存储面包的特殊日期价格,一天一条记录,每天对应一个价格,计算时覆盖面包的基础价格

返回顶部
顶部