环境:JBoss和MySQL和JPA,Hibernate的存档策略和数据的限制,在一个表中
我们的Web应用程序将迎合大量用户的(〜1,000,000)并且有很多的子表,其中的存储用户特定的数据(例如个人,健康,论坛贡献...)。
什么是归档用户&用户特定信息的最佳实践。 [a]将归档用户的特定信息移动到同一数据库中的相应表(例如user_archive,user_forum_comments_archive ...)或将 [b]标记为数据库条目是否明智原始表格并仅查询未归档的条目。
我们对User.loginid有一个唯一的约束,如果用户通过1- [a]归档(即如果具有loginid'samuel的用户'被移入归档表中并且if一个新的用户在原始表中添加了相同的名称,你将如何防止这个问题:解决唯一密钥约束的最佳策略是什么
我们有选择性地存档记录并将其带回的要求如果有必要,你会依赖数据库工具吗?你会通过JPA实体模型公开的持久性API来处理这个问题吗?
首先,您希望能够对归档数据执行哪些操作?除了第二点和第三点之外,比如说,我在论坛中创建了几个条目,然后我停止提供并进行“归档”。我的贡献在活跃用户所做的贡献中仍然可见,还是会被归档?如果是的话,有人可以通过论坛访问哪些数据(即我的公开个人资料仍然可见)?你有什么样的政策让人们“再次活跃”?你期望有多少百分比的活跃用户和不活跃用户? – 2010-04-06 06:33:38
我想论坛贡献应该是可见的,因为论坛仍然有很多帖子(因为论坛评论特定于用户的存档,可能使得对话完全无用)。用户的公共配置文件不需要向其他用户发布存档。我可能想要归档那些在系统中不活跃的用户(大约占系统中用户总数的10%)。再次,我只是在寻找什么才是解决这个问题的正确方法的想法,我的意图是保持表的大小尽可能小,以便活动用户的查询速度更快。 – Sam 2010-04-06 07:28:36
如果您计划拥有1,000,000名用户,我确定希望您为他们使用自动生成/身份数字PK,而不是像'samuel'这样的用户名。你压榨你的索引性能,将字符串拖到任何地方。 – 2010-04-06 11:50:54