Я пытаюсь вычислить эквивалент внешних ключей и индексов в базе данных NoSQL KVP или Document. Поскольку нет основополагающих таблиц (чтобы добавить ключи, обозначающие связь между двумя объектами), я действительно зациклен на том, как вы сможете извлекать данные таким образом, который был бы полезен для обычных веб-страниц.
Скажем, у меня есть пользователь, и этот пользователь оставляет много комментариев по всему сайту. Единственный способ, с помощью которого я могу отслеживать комментарии пользователей, - это
- Вставить их в объект пользователя (что кажется совершенно бесполезным)
- Создайте и сохраните значение
user_id:comments
, которое содержит список каждого ключа комментариев [комментарий: 34, комментарий: 197 и т.д.], чтобы я мог их при необходимости использовать.
Однако, взяв второй пример, вы скоро столкнетесь с кирпичной стеной, когда используете его для отслеживания других вещей, таких как ключ, называемый "active_comments", который может содержать 30 миллионов идентификаторов в нем, что делает стоимость TON для запроса каждой страницы знаю некоторые недавние активные комментарии. Он также будет очень подвержен гоночным условиям, так как многие страницы могут попытаться обновить его в одно и то же время.
Как отслеживать отношения, подобные следующим в базе данных NoSQL?
- Все комментарии пользователя
- Все активные комментарии
- Все сообщения помечены [keyword]
- Все учащиеся в клубе - или все клубы, в которых студент находится в
Или я думаю об этом неправильно?