【问题标题】:Should I use for 2 apps and 2 entities same table with JPA?我应该使用 JPA 的 2 个应用程序和 2 个实体同一个表吗?
【发布时间】:2012-11-06 04:53:25
【问题描述】:

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

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

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

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

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

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

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

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

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

【问题讨论】:

    标签: java jpa-2.0 eclipselink


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-12
      • 2016-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-24
      • 1970-01-01
      相关资源
      最近更新 更多