如何为每个新用户提供从1开始的ID计数器?

时间:2015-09-04 07:08:15

标签: sql ruby-on-rails database ruby-on-rails-4 database-design

我正在实施一个多用户网站。他们可以创造“物品”。 当一个新用户注册并创建他的第一个项目时,我希望它的ID为1,而不是2728(来自DB的ID)。

所以我需要某种映射?例如。 | real_item_id | fake_item_id |        2728 1

因此,对于每个帐户,我将从1开始使用fake_id的表,并在每次用户创建项目时递增?

也许还有另一种更好的方法?

2 个答案:

答案 0 :(得分:1)

我认为你不需要任何新表。只需将一个列fake_id添加到items表中,并使用user_id将其作为唯一性范围。

还可以在模型中创建自定义验证方法,以便在创建时将fake_id分配给项目。感谢

答案 1 :(得分:1)

只需创建一个表来跟踪每个用户创建的项目,并在用户创建新项目并将增加的项目ID更新到主表时继续增加项目数(更容易) 要么 另一个approched将在您的表上保留两个用户ID,另一个用于Items Id,它将通过检查特定用户插入的最后一个项目,在特定用户插入的每个新项目上获得增量id。