Я работаю над веб-приложением Rail. У меня есть две модели, Пользователь, который содержит очень основную информацию: идентификатор, имя пользователя и пароль, и Профиль, который включает в себя профиль для каждого пользователя. (Основная причина в том, чтобы иметь облегченную модель пользователя, которая будет вызываться регулярно, и полноценный профиль, который будет вызываться нерегулярно). У каждой из этих моделей много детей.
Сейчас у меня есть Профиль с собственным первичным ключом, а затем внешний ключ user_id для сопоставления с Пользователем.
Однако мне интересно, должна ли у меня быть модель профиля с тем же ключом, что и у модели пользователя (т.е. Profile.id == User.id, если записи ссылаются на одного и того же пользователя). Это удобно, потому что когда у меня есть объект, принадлежащий пользователю, я хочу, чтобы он принадлежал профилю, и наоборот. Например, я могу указать отношение User has_many и Spec has_many к ChildModel. Поскольку они используют один и тот же ключ, мне не нужно объединять ChildModel со Spec, а затем Profile to User, чтобы найти пользователя, связанного с дочерним объектом.
Недостаток в будущем, если по какой-то причине у меня будет несоответствие между первичным ключом User и Spec, то у меня большие проблемы.
Что бы вы посоветовали в этой ситуации?
Спасибо.