Я создаю приложение Rails, которое имеет функциональность в стиле Etsy.com. Другими словами, это как торговый центр. Есть много покупателей и много продавцов.
Меня волнует, как моделировать продавцов. Ключевые факты:
- Там не будет много продавцов. Возможно, всего менее 20 продавцов.
- Будет много покупателей. Надеюсь, многие тысячи:)
- У меня уже есть стандартная модель пользователя с созданием учетной записи и ролями.
- Я создал «роль» «продавца», которую администратор вручную применяет к соответствующим пользователям. Поскольку у нас будет очень мало продавцов, это не проблема.
Я рассматриваю два подхода:
(1) Создайте модель «магазина», которая будет содержать всю необходимую информацию о магазине. Продукты будут :belong_to
: хранить, а не принадлежать продавцу. Отношения между моделью пользователя и магазина будут следующие: user :has_one
store. Моя главная проблема с этим заключается в том, что я всегда считал has_one
ассоциации немного странными, и я обычно стараюсь их избегать. Приложение довольно сложное, и я беспокоюсь о том, чтобы столкнуться с каскадом проблем, связанных с ассоциацией has_one
, по мере того, как я буду продолжать разработку.
(2) Просто включите соответствующую информацию «хранилища» как часть пользовательской модели. Но в этом случае связанные с магазином столбцы БД будут применяться только к очень небольшому проценту пользователей, поскольку очень немногие пользователи также будут продавцами. Я не уверен, является ли это действительным беспокойством или нет.
Вполне возможно, что я думаю об этом неправильно. Я ценю любые мысли.
Спасибо.