gpt4 book ai didi

java - 我应该将同一个表与 JPA 用于 2 个应用程序和 2 个实体吗?

转载 作者:行者123 更新时间:2023-12-01 05:02:09 25 4
gpt4 key购买 nike

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

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

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

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

请告诉我优点和缺点,或者什么可能导致错误。

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

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

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

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

最佳答案

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

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

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

关于java - 我应该将同一个表与 JPA 用于 2 个应用程序和 2 个实体吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13244605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com