我正在做RoR教程,其中我们可以在应用程序中添加,更新,删除用户详细信息,同时一个id用用户自动定义,但是一旦我们删除了用户详细信息,那么对于该id它就会显示找不到记录。 我们可以再次使用该ID吗?我们可以再次使用记录已被删除的ID吗?
回答
从您的意见,它看起来像你想,以节省通过重复使用较低的值ID他们”后使用高值ID已被释放。一般来说这不被认为是一个好主意。
您将在最高端使用ID的可能性很小(如果您不断让您的ID列接受较大的整数,则为零),但重新分配ID可能会让您面临问题。例如,如果您想删除一个用户但保留他们创建的内容(例如博客帖子),那么重新分配这些ID将意味着新的ID所有者成为这些旧评论的所有者。
这感觉很浪费,但最好的办法就是留下旧的,空置的ID空置,并吃掉新的。
您可以使用这样的事情(Rails 3的语法)
@user = User.find_by_id(params[:id]) || User.where("id > ", params[:id]).first || User.where("id < ", params[:id]).last
老兄,这不是一个技术问题,这是一个教育问题。这基本上是一个错误的方法,所以代码不是答案。 – 2011-03-23 12:36:35
我明白了。其实当我阅读问题时,我并不是全部理解,所以我只是想象是否要搜索最接近的用户来删除一个 – fl00r 2011-03-23 12:38:29
我不建议重新使用唯一 ID's。
首先,问自己你为什么把唯一的ID的用户:
- 要唯一识别用户
- 要创建独特网址,用户的资源
- 要链接的其他对象(订单,博客文章,游戏数据)具体用户
那么,如果你删除了一个用户 - 会发生什么?
几乎在我编写用户的每个应用程序中都会留下痕迹。无论是来自曾经暴露于互联网的URL(想法用谷歌索引),还是来自该用户的记录(订单等)数据。
重复使用用户ID会导致问题 - 因此会重构应用程序以解决这些问题。在这些案例中,有99%是最简单的解决方案,它只是为这些用户持续生成新的唯一ID。
还有一些情况需要保留已删除用户的数据(例如,财务系统和网上商店是很好的例子)。这会在用户被删除后保持唯一的ID存活 - 你不能重用它。
TL; DR:重复使用唯一的ID是可能的,但会带来问题。解决这些问题最简单的解决方案是生成新的唯一ID。
作为补充说明,唯一ID不一定是自动递增整数。
- 1. 我们可以删除dom表吗?
- 2. 我们可以删除ES6课程吗?
- 3. 我们可以自动从memsql表中删除较旧的记录吗?
- 4. 您可以再次删除PowerShell中的添加类型吗?
- 5. 我可以防止Access中的记录删除吗?
- 6. 现在我们可以使用diagnostics.wadcfgx安全地删除diagnostics.wadcfg吗?
- 7. 我们可以使用'删除'来释放'malloced'吗?
- 8. 是否有可能返回上次删除的记录ID?
- 9. 我们可以在删除,删除和截断中回滚吗?
- 10. 我们是否可以管理已删除用户的会话?
- 11. 如何使用ID删除记录?
- 12. 糖米可以自动删除不再使用的字段吗?
- 13. 我们可以删除通过引用传递的对象吗?
- 14. 我应该使用WWW删除我的网站记录吗?
- 15. 我可以删除flashlogs.txt吗?
- 16. 我可以删除xxxxxxxAreaRegistration.cs吗?
- 17. 替代删除触发器以跟踪已删除的记录
- 18. 惨惨:“可以”的方法再次提取记录,即使他们已经获取
- 19. 我可以通过删除目录来删除imagemagick吗?
- 20. 删除临时表中的记录,他们已被添加到真正的表
- 21. 我可以使记录更灵活吗?
- 22. unique_ptr:所以我不能再引用已删除的函数
- 23. 使用svn一次删除多个目录,然后我可以用同名的新目录替换它们
- 24. 魔法记录被删除
- 25. 在我的程序的帮助下,我们可以删除使用其行ID的单列数据吗?
- 26. 我们可以在if-else的情况下使用(id)吗?
- 27. 可以从Eclipse中自动删除已删除的项目吗?
- 28. 我可以创建绑定到会话的数据库记录,并在会话被销毁时被删除吗?
- 29. 我们可以记录给CPU的指令吗?
- 30. lucene删除记录,已弃用?
为什么你想要重用一个ID? – idlefingers 2011-03-23 10:20:34
类似于如果我删除了很多记录,然后而不是评估**用户/ 4 **我将不得不使用用户/ 7 – Pisto 2011-03-23 10:24:41
那么你是说用户/ 4将会是用户/ 7上显示的用户?那么,它还没有被删除?我可能会很简单,但这对我来说毫无意义。 – idlefingers 2011-03-23 10:27:24