【发布时间】:2010-03-31 20:08:02
【问题描述】:
真正的新手问题来了。是否有一种标准(或好的)方法来处理不需要将数据库表包含的所有信息加载到每个关联对象中。我在考虑网页的上下文,您将只使用对象来构建单个页面,而不是使用具有更长生命周期的对象的应用程序。
例如,假设您有一个 Article 表,其中包含 id、title、author、date、summary 和 fullContents 字段。如果您只是显示一个包含文章列表及其摘要的页面,则不需要将 fullContents 加载到关联对象中。另一方面,如果您正在显示特定文章,您可能希望为该文章加载每个字段,并且可能只为其他文章加载标题(例如,显示在最近的文章侧边栏中)。
我能想到的一些技巧:
- 不用担心,每次都从数据库中加载所有内容。
- 为每个表创建几个不同的(可能是继承的)类,并根据情况创建适当的类(例如 SummaryArticle、FullArticle)。
- 如果不需要该字段,请使用一个类,但在创建时将未使用的属性设置为 null 并小心。
- 授予对象访问数据库的权限,以便他们可以按需加载某些字段。
- 还有别的吗?
以上所有似乎都有相当大的缺点。
我对编程很陌生,对 OOP 很陌生,对数据库也很陌生,所以我可能完全错过了这里的明显答案。 :)
【问题讨论】: