我在Oracle数据库中有一个construction_events
表。用户通过GIS software在表中输入施工事件。
例如,用户可以为2019
输入建设项目。
event_status
将输入为proposed
。
以合法身份开始:
记录在输入时为合法。用户为2019年提出一个合理的项目。
已过时:
但是,随着时间的流逝,我们会说... 2020年,从逻辑上讲,2019年的项目应该更改为complete
,deferred
,cancelled
等。>
不幸的是,这种情况很少发生。用户经常无法更改事件的状态(尽管我提醒他们进行检查)。这样会生成记录,记录年份是过去(2019)年,但是状态表明该事件是针对未来(建议)的。从逻辑上讲,不可能(一个事件不能过去-并且-将来不能同时出现)。所以,我们有一个问题。
问题:
通常,在数据库中,我们可以防止首先输入错误的数据(检查约束,无null,触发器等)。但是,在这种情况下,记录实际上在输入时是正确的,因此上述质量控制措施不适用。
如何处理这种情况,以便在用户记录过期时提醒他们其记录已过期?
注意:我不是I.T.家伙或开发人员。我只是一个公共工程数据分析师。这似乎是一个愚蠢的问题,答案很明显,所以请随时提供负面反馈。