@shmelfrol
Системный администратор, веб-программист junior

На чем строить социальную сеть и что использовать для построения новостной ленты?

Подскажите, пожалуйста, на чем построить социальную сеть и что использовать в качестве базы данных, и есть ли готовые решения - которые бы помогли с построением новостной ленты. Социальная сеть не большая - 5000 человек.
Но в процессе изучения имеющихся технологий поняли, что самое сложное - это новостная лента, так как если, например, в соц. сети 500 пользователей и они друг на друга подписаны - то количество запросов получается 500*500=250 000 - и с ростом сети данная цифра будет расти. А во всех бесплатных движках (humhub, joomla, wp и др) используется Mysql - и большое сомнение что мускл это все потянет, нужен или posgresql или mongodb. Мы новички в этом деле - есть знания php, javascript, yii2 ну и sql-запросы. Куда копать и как облегчить это все дело?
  • Вопрос задан
  • 138 просмотров
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега Веб-разработка
Если вы криво спроектируете БД, то не справится любая СУБД. Вам надо на этом сконцентироваться, а не на выборе между Mysql, Postrgres и, почему-то, Mongo. Mysql прекрасно справляется с большими объёмами данных и большим количеством запросов, если они делаются адекватно и на адекватном железе.

Что за математика такая с 500 * 500 в контексте соц. сети я не понимаю.

Найдите любой курс или книгу про создание соц. сетей, там будет пример корректной схемы БД.
Упрощённо - у вас будет две таблицы:
posts
  id
  author_id
  content

friendships
  user_id
  friend_id

И чтобы построить ленту достаточно одного запроса:
SELECT * from posts where author_id IN (
  SELECT friend_id FROM friendships WHERE user_id = ?
) ORDER BY id DESC

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

Некоторые аспекты соц. сетей лучше делать на базе графовых БД, но, судя по вопросу, вам пока туда рано.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
opium
@opium
Просто люблю качественно работать
на чем умеешь программировать на 5000 человек она будет летать
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Искра Екатеринбург
от 80 000 до 100 000 ₽
Art gorka Санкт-Петербург
от 60 000 ₽
от 40 000 до 60 000 ₽
19 апр. 2024, в 13:31
10000 руб./за проект
19 апр. 2024, в 13:12
35000 руб./за проект
19 апр. 2024, в 13:06
6000 руб./за проект