java - 如何在 Hibernate 中维护/生成表以用于多用户目的?

标签 java hibernate playframework

我正在开发一个使用 Play Framework 的项目,该项目要求我创建一个多用户应用程序。我有一个中央面板,我们在其中为团队添加特定的研讨会。问题是,我不知道这是否是最好的方法,但我想生成类似的表格

team1_表名 team1_secondtable..

然后,当使用虚拟主机(例如 http://teamawesome.workshop.com )命中某个请求时,我需要将查询操纵到该特定表。

问题不在于生成表,而在于使用模型。所有研讨会都将拥有相同的通用表格。在模型中,我必须声明表格等,但如果这是带有教义的 PHP,我会在创建研讨会 team1 后创建一个模板,但在 java 中,即使我生成它们,我也必须编译它们,这需要我要做更多研究。

我的问题更多是面向 Hibernate 的,然后才在这里匆忙放弃可能的解决方案。我洗耳恭听

我想过使用NamedQueries,我不知道我是否读错了,但我在一本 hibernate 书中读到,你可以查询然后将结果添加到通用模型中,然后我使用该模型来保留所有结果。 ..

如果有任何疑问,请告诉我,谢谢(请注意,这不是一个多数据库问题,只是使用具有唯一前缀的不同表集)

最佳答案

我想知道您是否可以使用一组表,但在每个表中使用 TEAM_ID 之类的内容作为外键。

您需要一个 TEAM 表,其中 TEAM_ID 将作为主键。这将迁移到表并成为外键的一部分。

例如,如果您有一个 Player 实体,具有 HighScore 的集合,那么在数据库中,Player 表将具有 TEAM_ID(来自 Team 表的外键),并且 HighScores 表将具有组合外键 (Player_id , Team_id) 来自玩家表..

因此,最重要的是,我建议对数据库进行逻辑分区,而不是物理分区(正如您最初考虑的那样)。

希望这是有道理的,它肯定需要更多的思考,但如果你认为这是一个有趣的想法,我可以更详细地考虑它。

关于java - 如何在 Hibernate 中维护/生成表以用于多用户目的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4359732/

相关文章:

java - iPhone 上的 JXTA 应用程序

java - Multi-Tenancy hibernate 不在租户之间切换

java - 使用 jpa 在对象中保留对象

playframework - 我如何将进化应用于 Play 框架中的测试数据库

java - Play框架缓存存储在哪里?

java - 保存笔记等用户输入的方法(Android Studio/Java编程)?

java - FilteredItemsSelectionDialog - 刷新内容提供程序

java - SFTP 连接器配置

java - properties.getProperty ("queryLocation")返回 null

java - 如何将 TestNG 与 Java Play 2.4.x 一起使用?