Я строю приложение в Ruby On Rails, Rails 4.Как сохранить дополнительные атрибуты, используя однонаправленное наследование?
Скажем, у меня есть таблица Users
, и я хочу, чтобы задать два типа пользователей User_1
и User_2
User_1
будет использовать все столбцы из родительской таблицы Users
, но User_2
будет использовать все столбцы из таблицы User
, например User_1
, но для хранения деталей требуется два дополнительных столбца. Вопрос в том, где и как хранятся эти дополнительные данные?
Включены ли столбцы в родительскую таблицу Users
? или являются дополнительными атрибутами, закодированными в Model
или Controller
? Я хочу хранить две части целочисленных данных, которые они будут вводить в свой профиль.
Спасибо, что посмотрели! :)
Я бы обычно использовал STI, где модели имели одинаковые атрибуты, но требовали другого поведения. Если вы обнаружите различие между различными требуемыми атрибутами, лучше всего пойти на две таблицы и модели. –
Если разница ** ** ** заключается в том, что у пользователя User_2 есть дополнительные атрибуты, просто сохраните его в одной модели. Разделение моделей с использованием STI будет иметь смысл только в том случае, если у двух типов пользователей есть методы с одним и тем же именем, но они ведут себя по-разному. – roob
Я считаю, что Roob в этом случае верен. У двух пользователей будет немного другое поведение и функции в приложении, помимо этого только дополнительные атрибуты. Спасибо вам большое за ваш вклад. – RubyMax