1

我喜欢在我的数据库中创建两个具有相同用户信息的 java 应用程序,但一些用户相关信息仅与应用程序 A 相关,其他仅与应用程序 B 相关。

我的问题是,我可以为 A 编写用户类并忽略 B 的字段,反之亦然吗?

或者是懒惰地加载字段并让我永远不会使用的字段保持不变的正确方法?这会导致内存中的对象更大吗?

或者如果必要的话,冗余存储信息并在两个表/数据库中更新会更好吗?

请告诉我利弊或可能导致错误的原因。

如果这很重要,我会使用 eclipselink 和 postgres。

谢谢@Vikdor,但你的回答让我脑海中浮现更多问题:)

  1. 所以你回答的主要陈述是,只要我不违反表格的条件就没有问题,对吧?

  2. 假设至少有一个应用程序,也许两者都被大量用户大量使用。保存冗余信息以防止性能问题会更好吗?
    或者将 A/B 特定信息保存在单独的对象/表中是否是一个好主意,其值可以识别用户(如他的电子邮件),这样我就有 3 个 DB 1 用于 A 和 A 特定数据,一个用于 B B 特定数据和基本用户信息(邮件、密码、用户名等)?

4

1 回答 1

0

只要应用程序只从用户表中读取与其相关的信息,就可以只使用对给定应用程序有意义的属性来定义实体。

但是,如果您要通过这些应用程序中的任何一个创建新的用户记录,则需要定义具有用户所有不可为空属性的实体。否则,插入将在数据库层失败。

关于内存中对象的大小,如果您的用户表很大并且您不使用大多数属性并且只执行读取操作,这可能是一个很好的优化,仅定义用户实体必需的属性。

于 2012-11-06T05:03:57.117 回答