Лучшая структура БД No SQL для накопления баллов с пользователями - PullRequest
0 голосов
/ 10 марта 2020

Я сделал много реляционных баз данных, но совершенно новый для концепции SQL.

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

В классических реляционных базах данных у меня, вероятно, было бы 3 таблицы (Users, Games, Highscores), но я не знаю, как сделать что-то подобное в No SQL.

Для справки я собираюсь использовать DynamoDB.

Насколько я понимаю, это может быть достигнуто с помощью одной большой таблицы пользователей? Что хранит рекорды на игровой основе для каждого пользователя? Похоже, это будет массивным. Но тогда мой вопрос здесь: если мне нужно запросить только список игр, это кажется невероятно неэффективным. Я определенно должен узнать больше, но если бы кто-то мог указать мне правильное направление, это было бы здорово! Спасибо

1 Ответ

0 голосов
/ 10 марта 2020

Нет, вы не можете использовать базу данных No SQL таким образом. Денормализация работает так же для № SQL. Нет SQL связей между таблицами и ограничениями, но они могут масштабироваться горизонтально. И нет SQL может быть без схемы.

Если вы хотите использовать DynamoDB, вы должны понимать, как использовать ваши таблицы, потому что вы не можете выполнить любой запрос, который хотите. Вы можете выполнять запросы только к ключам секционирования и сортировки, а также к полному сканированию таблицы с фильтрацией результатов (и это очень дорого). Также вы можете использовать потоки DynamoDB для ведения любой бизнес-логики c против обновлений таблиц.

DynamoDB предоставляет множество различных функций, но большинство из них не в вашем случае.

...