Задать вопрос
@Ewoqq

Как реализовать возможность регистрации разного типа пользователей?

Как лучше всего реализовать возможность регистрировать разных пользователей(физическое лицо или юридическое) чтобы у каждого типа были разные поля данных(например у юр. лица нет полей фамилия имя и т.д,), но одна сущность, т.е. "пользователь".
  • Вопрос задан
  • 315 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Thinknetica
    Профессиональная разработка на Ruby on Rails
    9 месяцев
    Далее
  • Хороший программист
    Интенсив по Ruby on Rails
    5 месяцев
    Далее
  • Thinknetica
    Оптимизация Ruby/Rails-приложений
    9 недель
    Далее
Пригласить эксперта
Ответы на вопрос 2
viktorvsk
@viktorvsk
Даете юзеру роль (Физ. лицо / Юр. лицо)
Все роле-специфические поля складываете в хэш. Если используете постгрес - hstore, если sqlite или mysql - то store accessor с полем типа text

Если же у вас не постгрес и нужно индексировать эту информацию, то неповезло.

Первый самый простой вариант - STI. Но нужно понимать, что если полей разных много, то будет много нулевых значений в базе. Это не так что б очень критично, но помнить и понимать - нужно.

Если первый вариант не подошел (не испольщуете постгрес или монгу, то есть, нет поддержки NoSQL), то нужно нормализовывать базу.
Делаете юзера. А у юзера связь с моделью PhysicalUserInfo, LegalEntityUserInfo

Или, как вариант нормализации, создаете сущность "Свойство", которое принадлежит роли. И у одного пользователя будет одно количество свойст (для физлица), у другого - другое (для юрлица) (тогда, конечно, еще и роль вынести в модель для порядка)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы