Я работаю над своим первым простым приложением на Rails, в котором пользователи отправляют спортивные «твиты» (например, «теннис, сквош»), и сервер сопоставляет их с партнерами. Сервер вернет вам список SportMatches, основанный на похожих твитах, и у вас есть разные варианты (например, электронная почта, SMS), чтобы ответить на чей-то твит и принять его в качестве партнера. Изначально моделирование было простым, поскольку: пользователь has_many SportTweets и SportTweet принадлежат пользователю. Уведомления были просто частью Пользователя, или они могли быть смоделированы как отношение «один к одному» с Пользователем.
Мои бизнес-требования немного изменились, так как теперь у меня есть анонимные пользователи, которые также могут публиковать SportTweets. Поскольку у них нет учетной записи / профиля, они также должны отправлять уведомления (например, электронную почту, SMS) с сообщением. Я не знаю, как смоделировать этот путь Rails. SportTweets теперь либо анонимные, либо опубликованные аутентифицированными пользователями (AUP). Итак, теперь моя таблица SportTweets будет иметь следующие столбцы:
- тип: «анонимный» или «AUP»
- user_id: только для AUP
- notifications_id: только для анонимных
- спорт: для всех
- post_date: для всех
- post_location: для всех
- и т.д.
Там будет таблица уведомлений. Запись уведомления будет принадлежать либо пользователю, либо SportsTweet. Думаю, я бы смоделировал это с полиморфными ассоциациями.
Это не похоже на путь Rails. Кто-нибудь сталкивался с подобной проблемой? Как ты решил это?