我正在使用Java EE(JDBC,MVC,DAO)和MySql。
我正在制作自己的项目,所以所有的建筑设计 - 我的责任。
我有一个系统" Facultative",我有实体Facultative,存储有关课程,讲师,开始和持续时间的信息。
现在,它还存储了一个字段" Status":Wait(未启动),Started和Ended。
这是一个地方,我有问题:如何更新信息?
当然,将此功能提供给管理员是可能的,但它似乎很容易而且效率不高。
我有想法 - 不是存储字段" status"在DB,但要检查模型实体中的状态(通过检查开始日期/持续时间)。
我使用MVC Pattern并且不确定将此方法添加到Class是否正确。
提前谢谢。
答案 0 :(得分:0)
存储开始日期和结束日期(或持续时间)并获取状态对我来说最有意义。
主要优势是,当状态从Wait
转换为Started
和Started
到Ended
时,数据无需更新,只需将其作为时间自行处理自然地过去了。
答案 1 :(得分:0)
这实际上是"世界"你在建模。问问自己:
课程是否未能按预定时间开始?
您想明确建模吗?
如果对这两个问题的回答是"是",那么您不能将status
字段视为(仅)从开始日期和结束日期(以及当前的日期)。同样,根据日期自动设置(非派生的)status
字段是可疑的。
另一方面......在行政上设置status
也是一个坏主意,因为它需要在特定时间完成;即演讲实际开始时。
然而......实际上对此进行建模需要确认存在一个“差距”。数据库中的信息与现实世界中实际发生的事件之间的关系。确保数据库100%准确是(可能)不切实际的。因此实用解决方案就是接受:将其作为一个"功能"系统。
如果你采用实用的观点,那么导出status
应该足够好了。 (将其名称更改为notional_status
或其他内容,并将start
和end
字段更改为scheduled_start
和scheduled_end
或其他内容。)