【问题标题】:How to use prefix table names with jpa如何在 jpa 中使用前缀表名
【发布时间】:2014-01-14 20:53:50
【问题描述】:

我正在使用 java play 来制作一个 web 应用程序,但我在使用 ebeans 和 jpa 注释持久化数据时遇到了一些问题。 我搜索了很多,有点困惑,我认为这应该是常见的,我想要这样命名的表:

  • 公司 1_users

  • 公司 2_users

  • 公司 N_users

但我只想拥有一个名为用户的实体,可以有这个架构吗?

我搜索了有关使用一个实体与多个表、使用表名前缀和使用动态表名的信息,但没有任何帮助。

一些想法??

【问题讨论】:

  • 为什么要将用户存储在单独的表中?为什么不将公司存储为用户实体/表的字段/列?
  • 因为我不想要一个增长到无穷大的用户表,你说我有一个概念错误?防止表像那样增长是错误的吗?
  • 如果这是您唯一关心的问题,那么是的,这是错误的。您的数据库将提供管理大型表的技术。第一个策略是在您的公司 ID 和用户 ID 上创建一个唯一索引(按此顺序)。第二个策略(如果第一个还不够的话)是对公司进行分区。除非您有十亿用户,否则我怀疑您是否需要分区。指数应该够上千万
  • 好的,谢谢@GlennLane!

标签: java jpa playframework persistence


【解决方案1】:

正如@GlennLane 在评论中所说,创建单独的表并不是一个好主意,而是使用某些字段作为公司 ID/鉴别器。您将节省大量的精力,并且每次新公司加入分支机构时都无需更新代码。

如果您真的想要单独的表为每个公司创建单独的模型,至少您不会在代码中混搭。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-17
    • 2023-03-13
    • 2015-05-19
    • 2015-02-25
    • 2011-05-17
    • 2011-12-22
    相关资源
    最近更新 更多