1

假设有一个 Teacher 对象,并且 Teachers 拥有 Courses 对象的列表。教师的课程可以更改。有的被添加,有的被删除。在数据库中更新此更改的最佳方法是什么。1. 每次更改后,立即更新数据库。例如:添加了课程,立即将其添加到数据库中。2. 对实体/对象 Teacher 进行所有更改后(添加课程,删除课程),然后才使用所有更改更新数据库。3.其他??

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

谢谢

4

2 回答 2

1

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

它还可能取决于数据库更新的频率。如果您不希望在写入数据库方面有大量活动,则可以选择在任何属性更改时触发即时数据库更新。

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

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

于 2010-03-06T20:30:17.607 回答
0

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

于 2010-03-10T13:56:59.440 回答