【发布时间】:2011-03-02 12:05:35
【问题描述】:
环境:JBoss、(h2、MySQl、postgres)、JPA、Hibernate 3.3.x
@Id
@GeneratedValue(strategy = IDENTITY)
private Integer key;
目前我们的主键是使用上述注释创建的。我们希望支持大量用户(约百万用户),应该使用什么密钥。它应该是 Integer 还是 Long 还是我应该使用上述声明的未签名版本。
我们有一个 j2ee 应用程序,需要在安装时填充一些种子数据。购买时,客户在应用程序之上创建自己的数据。我们只是想确保有足够的空间来为未来的版本发布、修改或添加数据。支持这一点的最佳机制是什么,我们已经研究了从某个 id(比如 1000)开始所有表标识符,但这要求修改主键生成以具有基于表或序列的生成器,并且我们有大约 100 个表。我们不确定这是否是正确的策略。
如果我们对密钥使用有符号整数方法,将种子数据作为从 0 及以下开始的所有内容(即 -ve 数字)是否有意义,以便所有客户特定数据在 0 及以上可用(即 +ve 数字)
【问题讨论】:
标签: java hibernate database-design jpa jakarta-ee