deemytch
@deemytch
linux root, ruby/perl programmer, sql, backend.

Что почитать относительно проектирования реферальной базы пользователей?

Здравствуйте, все.
Сейчас проектирую базу сетевых отношений пользователей.
У меня есть:
  • Производитель
  • Пользователь - Продавец
  • Конечный пользователь (ленивый, не хочет продавать)

Отношения строятся (уже сейчас) по принципу: кто кого привёл, тот тому и продаёт.
Производителей может быть много (они разнесены территориально).
Любой пользователь или продавец может купить товар у любого производителя (предварительно заранее договорившись, зависит от того, где покупатель находится сейчас, ну или от качества товара). Теоретически вложенности больше 4 уровней сейчас не происходит физически (невыгодно), но мало ли куда это все забредёт на электронных рельсах.

То есть в итоге получается общий граф (или сеть), которую както надо впихнуть в SQL (наверное).

Я знаю про графовые базы, но пока не нашёл для себя преимуществ подключать вторую базу к проекту, если можно обойтись одной. Кроме того, пока что ИМХО использование графовой базы выглядит либо как стрельба из ГРАДов по мухам, либо как введение нестабильной и опасной сущности в проект.

Варианты дальнейшего использования:
  • Продавцу нужен список возможных покупателей, чтобы оповестить о поступлении товара
  • Продавцу нужны прогнозы покупательной способности, чтобы не предлагать лишнего и не оттолкнуть покупателей
  • Покупателю нужны рейтинги производителей
  • Производителю нужны итоги активности покупателей, продавцов, сезонные изменения в активности и пр.
  • Нужно просчитывать скидки, вознаграждения, и другие денежные отношения

и так далее.
Объёмы сейчас видятся такими: больше сотни производителей, около сотни продавцов на одного производителя и около нескольких десятков покупателей у продавцов.

С большой благодарностью приму опыт реального проектирования, а также ссылки на код, книги и статьи.
  • Вопрос задан
  • 2497 просмотров
Пригласить эксперта
Ответы на вопрос 1
deemytch
@deemytch Автор вопроса
linux root, ruby/perl programmer, sql, backend.
В итоге всё вылилось в нормализацию реляционной базы. На сравнительно небольших объёмах все играет и без дополнительной мороки (около десятка продавцов). Связи HABTM (их много) для ясности пришлось переделать из анонимных в пары один-ко-многим через явный объект.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы