私はCassandraを初めて使用しており、ユーザーとその車両の1対多のマッピングを行いたいと考えています。 1人のユーザが複数の車両を持つことがあります。私のユーザーテーブルには、氏名、姓などのユーザーの詳細が含まれます。また、車両テーブルには車両の詳細が含まれます。Cassandraの1対多のマッピング
私の選択クエリは、特定のユーザーの車両の詳細をすべて取得します。
カサンドラでこれをどのように設計すればよいですか?
SELECT * FROM vehicles_to_users WHERE user_id = 9;
か何か:
CREATE TABLE vehicles (
vehicle_id bigint,
vehicle_type int,
vehicle_name text,
...
PRIMARY KEY (vehicle_type)
)
CREATE TABLE vehicles_to_users (
user_id bigint,
vehicle_id bigint,
vehicle_type int,
vehicle_name text,
...
PRIMARY KEY (user_id, vehicle_type)
)
は、その後、あなたがしてクエリになります。
特定の車両を持つすべてのユーザーを取得する場合はどうすればよいですか? :D – tymeJV
* *その場合、(同じデータを持つ)追加のクエリテーブルと、車両タイプとユーザーIDのプライマリキーを作成します。カッサンドラのディスクは安いので、あなたのデータを盗むのは大したことではありません。 – Aaron
OPは、少なくとも2つの別々の「カタログ」をユーザーに1つ、車両に1つ、そして2つのテーブル間で典型的な結合を実行したいと思うようです。この答えは、IDや名前などによって単一の車両にアクセスすることは不可能になります。 – xmas79