Вопрос

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

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

Это было полезно?

Решение

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

Другие советы

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top