Переход от отношений один-к-одному к отношениям многие-ко-многим в рельсах - PullRequest
0 голосов
/ 19 января 2011

Как видно из названия, я хочу перейти от отношений один-к-одному к отношениям многие-ко-многим в моем приложении rails 3.

Я довольно хорошо отношусь к рельсам, но сейчасне хватает хорошего понимания баз данных и миграций.

В настоящее время у меня есть модель Project и User.Проект принадлежит_Пользователю, а пользователь имеет_проекты.Я хочу перейти в ситуацию, когда над проектом могут одновременно работать многие пользователи.

Я почти уверен, что мне нужно установить тип отношения has_many: through, но мне также любопытно, чтокак я могу перенести все мои существующие проекты и пользователей в систему такого типа.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 19 января 2011

Хорошо, теперь у меня установлены отношения. Как перенести все мои существующие проекты и пользователей в эту новую таблицу format ?

Ну, это зависит от того, как вы настроили таблицы сейчас; как реализуются два существующих отношения; где данные ProjectUser находятся в старой таблице. Разместите свой DDL. Вы должны быть в состоянии просто INSERT ProjectUser SELECT FROM .... Нам нужно завершить это ОТ.

Также важно количество строк; если он большой, возможно, вам придется разбить его на партии.

0 голосов
/ 19 января 2011

Вам нужна другая таблица, которая связывает две таблицы вместе. Это то, как поддерживать отношения многие ко многим.

например. Скажем, у вас есть две таблицы, подобные этой:

Projects
----------
projectid
{other columns}    

Users
-------
userid
{other columns}

Новая таблица будет выглядеть примерно так: Новая таблица

Projects_Users
--------------
projectid
userid

Теперь вы можете добавить другого пользователя в проект, просто добавив идентификатор пользователя и проект в таблица Projects_Users. Точно так же вы сможете добавить нескольких пользователей к одному проекту в одной таблице.

Первичным ключом в этой таблице является составной ключ projectid & userid.

...