具有临时条目的数据库表的id管理

时间:2011-07-19 01:53:42

标签: mysql ruby-on-rails database identifier

如果希望频繁创建和删除该表的条目,那么处理数据库表ID的最佳方法是什么? 基本上,大多数条目在几天的时间内是临时的。但是,条目也可能在表中保留一段任意时间。

在达到最大键值的某个时间后,使用带有自动增量的整数或长ID可能会出现问题。考虑到庞大的用户群,大多数用户每天可能会创建十几个或更多的条目,这可能比预期的更快...

因此问题。有没有一些机制可以使用MySQL或其他数据库来获取循环ID或任何其他解决方案来处理这个问题并获得良好的性能?

顺便说一下。这是在Ruby on Rails应用程序的上下文中。我正在考虑使用嵌套的id,即在user_id和user_entry_id上创建一个唯一的条目。但我不知道,rails支持这种方法的效果如何。

编辑: 我知道我应该对id范围很快就会用完的可能性进行一些计算。我想我不会很快担心这个问题。如果人们可以报告与这些问题有关的一些经验,那仍然很高兴。如果有人遇到过这个问题......

2 个答案:

答案 0 :(得分:0)

是的,你想要创建一个复合键,正如D.N.所说,这是另一篇文章,解释了它是如何工作的/为什么你想要它。 (这篇文章在SQL-Server中,但MySQL大致相同。

Why use multiple columns as primary keys (composite primary key)

RoR支持多个主键列。这是非常常见的数据库实践。 (你确实需要扩展名)

答案 1 :(得分:0)