这是一个更理论化的问题,我一直在考虑这种“问题”更长一段时间,并且找不到任何真正的答案。
让我们从这个简单的设置开始:
project.rb
has_many :tasks
和
task.rb
belongs_to :project
现在每个项目都可以完成任务。
想象一个完全新鲜的DB:
如果我之后为该项目创建一个新项目(1)和5个任务,任务1-5将与项目1相关联,对吧?
现在,如果我创建另一个项目(2)并为该项目创建5个新任务,则id将从6开始,最多为11。
问题是:即使已经有项目1的任务记录1-5,第二个项目的任务ID是否有可能再次从1开始?基本上我想要的是每个项目都有一些“孤立”的任务,所以每个项目的id为1时,每个任务都会重新开始。这样,通过搜索id,找到例如项目2的任务23和项目1的任务23将更加井井有条。
那有意义吗?
如果不清楚,请告诉我。
一如既往地提前感谢大家!
问候!
DB ID与用于路由和显示的ID之间可能存在差异。
例如,
你可以使用一个名为displayed_id
的单独字段,并在那里输入你想要的任何数字。您可以将其设置为与project_id相关的唯一约束。也就是说,你可以通过总是去找project.tasks.find_by(displayed_id: params[:id])
找到一个任务