Я намагаюся з'ясувати еквівалент сторонніх ключів та індексів у базах даних NoSQL KVP або Document. Оскільки немає ключових таблиць (щоб додати ключі, що позначають відношення між двома об'єктами), я дійсно задумався про те, як ви могли б отримати дані таким чином, який був би корисний для звичайних веб-сторінок.
Скажіть, у мене є користувач, і цей користувач залишає багато коментарів по всьому сайту. Єдиний спосіб я можу придумати, щоб слідкувати за коментарями користувачів, це
- Вставити їх у користувальницький об’єкт (що здається досить марним)
- Створіть і підтримуйте
user_id:comments
значення, яке містить список кожного ключа коментаря [коментар: 34, коментар: 197, тощо ...], щоб я міг отримати їх за потребою.
Однак, беручи другий приклад, ви незабаром потрапите на цегляну стіну, коли будете використовувати її для відстеження інших речей, таких як ключ під назвою "active_comments", який може містити в ньому 30 мільйонів ідентифікаторів, що вимагає TON для запиту на кожній сторінці, щоб дізнатись про останні останні активні коментарі. Це також було б дуже схильне до умов перегонів, оскільки багато сторінок можуть спробувати оновити його одночасно.
Як я можу відстежувати такі відносини, як наступні, у базі даних NoSQL?
- Усі коментарі користувача
- Усі активні коментарі
- Усі повідомлення з тегом [ключове слово]
- Усі студенти в клубі - або всі клуби, в яких є студент
Або я думаю про це неправильно?