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
1つのクエリを使用してこのすべての情報を抽出できるようにしたい、つまり、これを1つのビジネス行に格納したい。これどうやってするの?基本的に、親ビジネスエンティティと一緒に保存したい子エンティティがたくさんあります。複合キーについて私が理解していることから、複合キーは1つしか持てません(例:businessId:ReviewIdでレビューをモデル化できます)が、これらすべてのエンティティを1つの行に格納して、1つのクエリですべてのビジネスの詳細を効率的に取得するにはどうすればよいですか。
私の2番目の質問は更新に関するものです。これらのエンティティ(レビュー)の1つだけが頻繁に更新されるとします。他のエンティティはほとんど静的なままです。この巨大なビジネス行からレビューを分離することをお勧めしますか、それともビジネス行全体をメモリに保存せずにレビューを更新できますか?