Я пытаюсь смоделировать следующую модель данных Cassandra:Cassandra Модель данных - несколько композитных колонн
Бизнес - первичный ключ: BusinessID
Has Many Reviews - primary key : ReviewId
- Review 1
- Body
- Rating
- Review 2
- Body
- Rating
and so on
Has an Address
- State
- City
- Zip
Has Business Hours
- Monday Hours
- Tuesday Hours
and so on
Has Offers
- Offer1
- Offer2
and so on
Я хочу, чтобы иметь возможность извлечь всю эту информацию с помощью один запрос, т. е. я хочу сохранить это в одной строке бизнеса. Как я могу это сделать? По сути, у меня есть множество дочерних объектов, которые я хочу сохранить вместе с родительским бизнес-объектом. Из того, что я понимаю о составных ключах, вы можете иметь только один составной ключ (ex) businessId: ReviewId для моделирования отзывов), но как я могу хранить все эти объекты в одной строке, чтобы эффективно получать все бизнес-данные в одном запросе.
Мой второй вопрос касается обновлений. Предположим, что только один из этих сущностей (Обзоров) часто обновляется. Другие объекты в основном остаются статическими. Целесообразно ли разделять обзоры этой гигантской бизнес-строки или я могу обновлять обзоры, не получая всю бизнес-строку в памяти?
Зачем вам нужен один запрос? –
Ну, как можно меньше запросов. Я не хочу распространять данные по нескольким семействам столбцов, если только не нужно. Как я могу моделировать многие отношения 1-много в одном семействе столбцов? – user1710833
Кроме того, не считается ли наилучшей практикой пытаться получить данные из одного семейства столбцов, где это возможно, потому что данные в разных семействах столбцов хранятся в разных файлах? Как кассандра поддерживает одно или несколько отношений. Бизнес-объект в моем случае имеет много отношений 1-много, и если единственный способ моделировать это состоит в том, чтобы помещать их в отдельные семейства столбцов, разве это не противоречит принципу моделирования ваших данных для эффективного ответа на ваш запрос? – user1710833