背景:以MySQL数据库存储一张商品价格表,同一个商品的价格会不断变化,有如下五个字段:
`id` bigint comment 'ID'
`item` bigint comment '商品ID'
`price` int comment '商品价格'
`effective` bit comment '是否生效'
`effective_date` date comment '生效日'
`disable_date` date comment '失效日'
同一个商品前后两次录入不同的价格:
id=1, item=1001, price=5, effective=true, effective_date='2023-10-25', disable_date='2023-11-05'
id=2, item=1001, price=6, effective=true, effective_date='2023-11-01', disable_date='2023-11-10'
id=3, item=1001, price=7, effective=true, effective_date='2023-11-05', disable_date='2023-11-15'
问题1:
假设现在是11月3日,如何设计查询以取得有效期内的最新价格?
问题2:
假设现在是11月3日,对于id为1的记录,要不要做什么操作以标识该价格记录已失效?或者,系统要不要每天根据“失效日”自动更新effective字段的值?烦请指导操作步骤?
问题3:
请问如何设计或者操作这三个字段:effective、effective_date、disable_date,以使每天同一个商品只有一个有效价格?
谢谢。