Это более теоретический вопрос, я думал об этом виде «проблемы» в течение более длительного периода времени и не мог найти реального ответа на него.
Давайте начнем с этой простой настройки:
project.rb
has_many :tasks
а также
task.rb
belongs_to :project
Теперь у каждого проекта может быть задача.
Представьте себе совершенно свежую БД:
Если после этого я создам новый проект(1) и 5 задач для этого проекта, задачи 1-5 будут связаны с проектом 1, верно?
Теперь, если я создам еще один проект(2) и создам для этого проекта 5 новых задач, идентификатор будет начинаться с 6 и увеличиваться до 11.
Возникает вопрос: возможно ли, что идентификатор задач для второй проект снова начинается с 1, даже если уже есть запись задачи 1-5 для проекта 1? В основном я хочу, чтобы каждый проект имел своего рода «изолированные» задачи, чтобы каждая задача снова начиналась с идентификатора 1 для каждого проекта. Таким образом, было бы намного удобнее найти, например, задачу 23 для проекта 2 и задачу 23 для проекта 1, просто выполнив поиск по идентификатору.
Имеет ли это смысл?
Пожалуйста, дайте мне знать, если что-то не ясно.
Заранее всем спасибо как всегда!
Привет!
Может быть разница между идентификатором БД и идентификатором, используемым для маршрутизации и отображения.
Например,
вы можете использовать отдельное поле под названием displayed_id
и поместить туда любой номер, который вы хотите.
Вы можете установить для него ограничение, чтобы оно было уникальным по отношению к вашему project_id.
Тем не менее, вы можете найти задачу, всегда выбирая project.tasks.find_by(displayed_id: params[:id])
Спасибо за ваш вклад. Это звучит как отличная идея. Я уже проголосовал за это, но нужно проверить позже! Я также подумал об ассоциации has_many :through, которая связана с самой задачей. Но ваша идея звучит намного проще, чем создание таблицы соединений.