请教各位一个数据库设计的问题

2017-11-05 19:52:54 +08:00
 thisisgpy

有一个产品 A,他的价格可能每天都不一样,现在我需要预设置未来一个月这个产品每天的定价。我现在在页面上展示一个日历,然后前端允许用户双击日期进行价格填写并保存。 我的问题是:数据库该怎么设计,才能比较好的存储这些价格信息?

目前我是将设置了价格的日期存入数据库

----------------------------------
product_id | sale_date | price
----------------------------------
10000      | 2017-11-4 | 100.00
10001      | 2017-11-5  | 102.00
----------------------------------

查询产品价格时先从这张表查,如果查不到,就去查在产品表里面设置的价格。

请问有什么更好的数据库设计吗?

3643 次点击
所在节点    Java
7 条回复
RadishWind
2017-11-05 20:12:27 +08:00
问题描述的不是很清楚,有没有具体的需求?什么样的用户?单个还是多用户?又是什么数量级的产品价格?
mooncakejs
2017-11-05 20:19:11 +08:00
存这么存肯定没问题,读的时候:
直接在 sku 表里保存价格,
如果每天价格不同,定时更新。
thisisgpy
2017-11-05 20:22:43 +08:00
@RadishWind 现在需求就是存在商品 A,在他被销售期间,每天的价格都不一样,我现在应该怎么设计数据来存储每天的价格信息?页面会显示当日的销售价格。所谓的用户,就是网站管理员,他可以来设置产品每天的销售价格,可以一次性设置未来 N 多天的价格。
RadishWind
2017-11-05 20:28:44 +08:00
如果商品不多的话,建议你现在这样就行,商品表里面有个默认的价格,然后后台如果设置了某一天的,就将其单独显示出来

如果多的话,反范式也是可以的,直接用一张表,用某个特定的时间(如 1970-00-00 )来标志默认值,然后哪一天有就查哪一天的,这样的好处是可以直接用一个 sql 语句写出来 select * from product where date = "1970-00-00" and 1 = 1 and date = "2017-11-5"....这样
q397064399
2017-11-05 20:28:48 +08:00
@thisisgpy #3 一张商品表 一张价格表 价格表外键关联到商品表 就好了
iscraft
2017-11-05 21:46:44 +08:00
商品 id|年月|1|~|31
skyFuture
2017-11-06 08:54:43 +08:00
每天定时去跟新价格即可呀~~ 1 张表保持预价格,另外库存表表示正售卖的价格即可

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/403742

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX