База данных для запуска микроблогов - PullRequest
0 голосов
/ 31 октября 2009

Я сделаю веб-сервис микроблогов (для школы, так что не жалейте меня из-за отсутствия новой идеи), и я беспокоюсь о том, что БД часто может быть перегружена (пользователь может следовать за другими пользователями или даже тегом, поэтому я предполагаю, что SELECT будет тяжелым - проверьте 20 последних сообщений, которые содержат все теги наблюдения и пользователя).

Моя идея - создать еще одну таблицу и хранить в ней только statusID и userID (кто должен забрать сообщение). Опасность заключается в том, что если у какого-либо тега или пользователя много подписчиков, будет много записей с этим идентификатором статуса. Так это хорошая идея? Или, может быть, лучше использовать отношение M2M? (один статус -> много получателей)

Ответы [ 3 ]

3 голосов
/ 31 октября 2009

Я думаю, что большинство баз данных могут легко обрабатывать большие наборы записей. Ответственность за правильную настройку индексов лежит на вашем дизайне. Если вы создаете правильные индексы, предложения select должны работать очень хорошо.

1 голос
/ 31 октября 2009

Я бы пошел с таблицей users , таблицей с отношением m2m между пользователями и таблицей messages .

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

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

0 голосов
/ 21 мая 2013

При реализации Collabinate (http://www.collabinate.com), движка, основанного на службах для микроблогов и общих потоков активности, я использовал базу данных графа. Тот факт, что люди создают посты и следуют за другими людьми, поддается графической структуре. правильные отношения и алгоритмы, это может быть очень эффективным и производительным решением.

...