我的数据库中有一行三列,即
start_date = 2013-12-1
end_date = 2013-12-31
status = 'a'
我想通过添加新记录来更改日期状态
start_date = 2013-12-10
end_date = 2013-12-20
status = 'u'
在这种情况下,我可以轻松更新数据库,更新后的数据库将 -
1)start_date = 2013-12-1
end_date = 2013-12-9
status = 'a'
2)start_date= 2013-12-10
end_date = 2013-12-20
status = 'u'
3)start_date = 2013-12-21
end_date = 2013-12-31
status = 'a'
但是当我再次想要更改日期的状态时:
start_date = 2013-12-15
end_date = 2013-12-25
status= 'a'
所以,我希望在我的数据库中得到这样的结果
1)start_date = 2013-12-1
end_date = 2013-12-9
status = 'a'
2)start_date = 2013-12-10
end_date = 2013-12-14
status = 'u'
3)start_date = 2013-12-15
end_date = 2013-12-25
status = 'a'
4)start_date = 2013-12-26
end_date = 2013-12-31
status = 'a'
那么,我将如何管理更新查询或任何其他方式来执行相同的操作?
最佳答案
目前您在数据库中代表的时间段 例如 [日期从、日期到、状态]。事情变得复杂 当你的片段重叠时。我的建议是 你用这种方式表示它[日期,状态]。一年刚刚过去 365-366 天,因此不需要存储太多数据 (实际上对于一个严肃的 RDBMS 来说这没什么)。
如果你代表每个日期,对你来说会更容易 作为数据库中的单独行。那么你需要只 将某些日期更新为“u”,将其他日期更新为“a”状态。 但您的更新查询将会简单得多。
关于mysql - 根据输入的日期更新数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20298299/