Для реализации независимых моделей для разных типов пользователей или нет? - PullRequest
0 голосов
/ 15 марта 2012

Итак, я создаю веб-приложение с использованием rails и устройства для аутентификации и столкнулся с концептуальным вопросом, касающимся настройки моей базы данных.

Идея сайта заключается в том, что существует два разных типа пользователей, каждый из которых имеет свои права доступа и представления. Например, когда кто-то регистрируется, он выбирает либо тип пользователя 1, либо тип пользователя 2. Затем после регистрации, в зависимости от их выбора, им предоставляются различные формы для заполнения их профиля и т. Д. Разрешения вступают в игру, потому что тип Пользователи 1 могут видеть пользователей типа 2, но не могут видеть профили других пользователей типа 1, а пользователи типа 2 могут видеть профили всех пользователей.

Теперь, как я это настроил, у меня есть две отдельные модели; один для каждого типа пользователя. Однако, просмотрев кучу онлайн, я прочитал, что многие люди используют только одну модель, а именно User, со столбцом типа пользователя, который определяет их тип для загрузки соответствующих ресурсов. Прежде чем я зайду слишком далеко в своем подходе, мне просто интересно, каковы плюсы и минусы наличия нескольких моделей для пользовательских типов?

1 Ответ

1 голос
/ 15 марта 2012

Я предлагаю вам использовать Наследование одной таблицы :

class User < ActiveRecord::Base
  # Data shared by all kinds of users
end

class Type1User < User
  # Data specific to type 1 user
end

class Type2User < User
  # Data specific to type 2 user
end

Все эти модели будут сохранены в таблице users, но будут иметь столбец type, который позволяетрассказать им отдельно.User s возвращено find, и компания также будет экземплярами соответствующего класса.

Related:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...