2012-03-15 3 views
0

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

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

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

ответ

1

Я предлагаю вам использовать Single Table Inheritance:

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, и компания также будет экземплярами соответствующего класса.

Похожие:

Смежные вопросы