需要有关mysql数据库存储信息的建议

时间:2017-05-01 09:45:47

标签: java mysql

我正在使用Java EE(JDBC,MVC,DAO)和MySql。

我正在制作自己的项目,所以所有的建筑设计 - 我的责任。

我有一个系统" Facultative",我有实体Facultative,存储有关课程,讲师,开始和持续时间的信息。

现在,它还存储了一个字段" Status":Wait(未启动),Started和Ended。

这是一个地方,我有问题:如何更新信息?

当然,将此功能提供给管理员是可能的,但它似乎很容易而且效率不高。

我有想法 - 不是存储字段" status"在DB,但要检查模型实体中的状态(通过检查开始日期/持续时间)。

我使用MVC Pattern并且不确定将此方法添加到Class是否正确。

提前谢谢。

2 个答案:

答案 0 :(得分:0)

存储开始日期和结束日期(或持续时间)并获取状态对我来说最有意义。

主要优势是,当状态从Wait转换为StartedStartedEnded时,数据无需更新,只需将其作为时间自行处理自然地过去了。

答案 1 :(得分:0)

这实际上是"世界"你在建模。问问自己:

  1. 课程是否未能按预定时间开始?

  2. 您想明确建模吗?

  3. 如果对这两个问题的回答是"是",那么您不能将status字段视为(仅)从开始日期和结束日期(以及当前的日期)。同样,根据日期自动设置(非派生的)status字段是可疑的。

    另一方面......在行政上设置status也是一个坏主意,因为它需要在特定时间完成;即演讲实际开始时。

    然而......实际上对此进行建模需要确认存在一个“差距”。数据库中的信息与现实世界中实际发生的事件之间的关系。确保数据库100%准确是(可能)不切实际的。因此实用解决方案就是接受:将其作为一个"功能"系统。

    如果你采用实用的观点,那么导出status应该足够好了。 (将其名称更改为notional_status或其他内容,并将startend字段更改为scheduled_startscheduled_end或其他内容。)