Я пытаюсь вычислить эквивалент внешних ключей и индексов в базах данных KVP или документов NoSQL. Поскольку нет основополагающих таблиц (чтобы добавить ключи, обозначающие связь между двумя объектами), я действительно тупик относительно того, как вы сможете извлекать данные таким образом, который был бы полезен для обычных веб-страниц.Как вы отслеживаете отношения записи в NoSQL?
Скажем, у меня есть пользователь, и этот пользователь оставляет много комментариев по всему сайту. Единственный способ, которым я могу думать, чтобы следить за того, что комментарии пользователей к
- встраивать их в объекте пользователя (который, кажется, совершенно бесполезно)
- Создать и поддерживать значение
user_id:comments
, который содержит список каждого комментария key [комментарий: 34, комментарий: 197 и т. д.], чтобы я мог их приносить.
Однако, принимая во втором примере вы вскоре врезался в кирпичную стену, когда вы используете его для отслеживания других вещей, как ключ, который называется «active_comments», который может содержать 30 миллионов идентификаторов в нем, что делает его стоить TON в запросите каждую страницу, чтобы узнать последние активные комментарии. Это также было бы очень подвержено условиям гонки, так как многие страницы могут попытаться обновить его одновременно.
Как отслеживать отношения, подобные следующим в базе данных NoSQL?
- Все комментарии пользователя
- Все активные комментарии
- Все сообщения с тегами [ключевое слово]
- Все студенты в клубе - или все клубы студент в
Или я думаю об этом неправильно?
Нет никакого способа сделать это в базах данных NoSQL, этот вопрос - это скорее вопрос, как бы отслеживать отношения в программах на C. – stonemetal
Ничего себе, тогда я думаю, что шумиха о NoSQL, заменяющем СУБД, невозможна. – Xeoncross
Да, NoSQL определенно превышен. Я не говорю, что новые технологии не пригодились при правильных обстоятельствах, но смешно думать, что они заменят РСУБД. См. Http://en.wikipedia.org/wiki/Hype_cycle –