Database 如果数据模型(对象)发生更改,那么更新数据库的最佳方法是什么?

Database 如果数据模型(对象)发生更改,那么更新数据库的最佳方法是什么?,database,model,datamodel,Database,Model,Datamodel,假设有一个教师对象,教师持有一个课程对象列表。 老师的课程可以改变。有些被添加,有些被删除。 更新数据库中这些更改的最佳方法是什么。 1.每次更改后,立即更新数据库。e、 g:如果添加了课程,请立即将其添加到数据库中。 2.对实体/对象教师进行所有更改(添加课程,删除课程)后,才使用所有更改更新数据库。 3.其他 我可以看出1和2的优点和缺点。 对于1:我不知道数据模型直接访问数据库有多好。 对于2:该算法更加复杂,因为您必须同时将数据模型中的信息与数据库中的信息进行比较 谢谢您请看一看适用于您

假设有一个教师对象,教师持有一个课程对象列表。 老师的课程可以改变。有些被添加,有些被删除。 更新数据库中这些更改的最佳方法是什么。 1.每次更改后,立即更新数据库。e、 g:如果添加了课程,请立即将其添加到数据库中。 2.对实体/对象教师进行所有更改(添加课程,删除课程)后,才使用所有更改更新数据库。 3.其他

我可以看出1和2的优点和缺点。 对于1:我不知道数据模型直接访问数据库有多好。 对于2:该算法更加复杂,因为您必须同时将数据模型中的信息与数据库中的信息进行比较


谢谢您

请看一看适用于您的语言或平台的一些ORM工具。数据库中实体的对象表示形式可能总是不同步。例如,如果用户更改了某个属性,并且尝试了数据库更新,但由于任何原因更新失败。现在这两个项目不同步

这也可能取决于数据库更新的频率。如果您不希望在写入数据库方面发生大量活动,那么在任何属性更改时触发即时数据库更新可能是一种选择

否则,您可能会在对象中包含一个
dirty
标志,以指示它何时与数据库不同步。对象更改可以在发生时更新,或者在触发事件时更新,例如当用户决定保存其进度时,或者定期更新,例如每x分钟更新一次


不同的语言和框架以不同的方式实现这些模型对象。在Rails中,模型对象是数据库的子类,知道如何将自身持久化到数据库中。在Java中,您很少将域对象与它们的持久化方式混合使用。这通常由ORM框架或自定义对象来处理。

查看一些适用于您的语言或平台的ORM工具。数据库中实体的对象表示形式可能总是不同步。例如,如果用户更改了某个属性,并且尝试了数据库更新,但由于任何原因更新失败。现在这两个项目不同步

这也可能取决于数据库更新的频率。如果您不希望在写入数据库方面发生大量活动,那么在任何属性更改时触发即时数据库更新可能是一种选择

否则,您可能会在对象中包含一个
dirty
标志,以指示它何时与数据库不同步。对象更改可以在发生时更新,或者在触发事件时更新,例如当用户决定保存其进度时,或者定期更新,例如每x分钟更新一次


不同的语言和框架以不同的方式实现这些模型对象。在Rails中,模型对象是数据库的子类,知道如何将自身持久化到数据库中。在Java中,您很少将域对象与它们的持久化方式混合使用。这通常由ORM框架或自定义对象处理。

我发现了Hibernate。这正是我需要的,而且很简单。

我发现了Hibernate。这正是我需要的,而且很简单