Нужен совет по схеме таблиц DynamoDb - PullRequest
0 голосов
/ 20 июня 2020

Я создаю обзорный сайт. Он будет просматривать отели, рестораны и кафе (назовем их списками), поэтому будет три категории списков. У каждого из этих списков будут обзоры.

Теперь конечные пользователи смогут лайкать / не любить листинг или отдельные отзывы. Я использую AWS Amplify для создания этого сайта.

Внешний интерфейс будет запрашивать данные следующим образом.

  1. Окно поиска может захотеть увидеть рестораны в указанное местоположение, скажем, Сидней / Лондон и т. д. c.
  2. , когда появится список ресторанов, конечный пользователь может щелкнуть по каждому ресторану, чтобы просмотреть отзывы об этом ресторане.
  3. Конец пользователь может любить / не любить ресторан или делать то же самое или не любить в отдельных обзорах.

Я новичок в концепции базы данных No SQL, поэтому мне нужен совет о том, как это должно быть структурировано. На изображении ниже показано, что я имею в виду.

введите описание изображения здесь

1 Ответ

2 голосов
/ 20 июня 2020

Нет SQL моделирование схемы должно выполняться на основе шаблонов доступа к данным. На основе предоставленных вами шаблонов доступа

  1. Рестораны для данного местоположения можно искать во вторичном разделе листинга, и в дополнение к этому вы также можете сортировать их, используя рейтинг листинга.
  2. Для о каждом ресторане вы можете получить отзывы, связанные с этим. Вы храните здесь оригинальные обзоры? В таком случае следует предупредить о максимальном размере строки и подумать о сжатии обзора или использовании S3 для сохранения исходного отзыва.
  3. Увеличение столбцов для Review_Likes и Dislikes решит ваш вариант использования 3.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...