Я создаю приложение, чья система БД будет иметь решающее значение и должна быть масштабируемой, поскольку все ее значение будет в данных.
Я делаю живую систему голосования.
Мне комфортно работать с SQL и MongoDB, так что это почти не фактор решения (хотя я больше склоняюсь к структуре MongoDB и JS):
Но из всего, что я читал в Интернете, мне все еще кажется неудобным мое решение.
Что я хочу сделать, так это совместить преимущество обоих:
- Наличие noSQL документов для объектов (пользователи, элементы, комментарии и т.д.)
- Наличие таблиц SQL для отношений (таблицы User-Items, User-Comments и т.д.)
- Дублирование результатов голосования в документе noSQL всякий раз, когда есть голосование или регулярный интервал (чтобы получить скорость также при отображении результатов голосования)
Я вижу следующие преимущества:
- При запросе документа (например, пользователя для отображения его профиля) у меня есть все преимущества NoSQL (скорость, все в одном месте, гибкость схемы и т.д.).
- При выполнении статистики (например, количество голосов) у меня есть все преимущества SQL.
- Параллелизация: я могу получить голосование в SQL и документах в режиме aSync.
- Читайте быстро, напишите медленно (и в моем случае это не имеет значения)
- Отношения целостности всегда сохраняются
Мои вопросы:
- Это хорошая практика? Веб выглядит довольно застенчивым.
- Я оптимизирую арахис, даже при высокой нагрузке на БД? (сравнение выборки документов с полным SQL и запросов, таких как select * from table, где primary_key = XXX)