-3
私は新しいカサンドラです。 Cassandraで最良のデータモデルを定義する方法を理解するのを手伝ってください。カサンドラデータモデル設計のアプローチ
モデル1:
CREATE TABLE users (
id uuid PRIMARY KEY,
username text,
email text,
age int
)
CREATE TABLE users_by_username (
username text PRIMARY KEY,
id uuid
)
CREATE TABLE users_by_email (
email text PRIMARY KEY,
id uuid
)
利点
:重複するレコード1.No 。 2.更新/削除は一度だけですが、ユーザーの詳細を検索するには、
クエリを1つ選択する必要があります。
ディス利点
1. To get user records, Need to select in 2 tables ( users_by_username
or users_by_email and users)
モデル2:
CREATE TABLE users_by_username (
id uuid PRIMARY KEY,
username text,
email text,
age int
)
CREATE TABLE users_by_email (
id uuid PRIMARY KEY,
username text,
email text,
age int
)
利点:
1. To get user records, only once select query.
ディス利点:
1.Duplicate records in two tables.
2. Update/Delete needs to performed in two tables.
良いだろうどのモデルに私を提案してください?
ユースケースの場合はメールで、別のユースケースの場合はユーザ名でクエリ – Gnana
'CREATE TABLE users_by_username( のid UUID、 ユーザ名のテキスト、 電子メール、テキスト、 年齢はint、 PRIMARY KEY(ID、ユーザ名) ) ' ' TABLEのusers_by_emailをCREATE( のid UUID、 ユーザ名のテキスト、 電子メール、テキスト、 年齢int、 PRIMARY KEY(ID、Eメール) ) ' アトミック[更新](https://docs.datastax.com/en/cql/3.1/cql/cql_reference/batch_r.html)を使用する必要がある挿入、更新、または削除を行うとき ' BEGIN UNLOGGED BATCH INSERT INTO users_by_username VALUES(...); INSERT INTO users_by_email VALUES(...); バッチを適用; –
ありがとうございます。それは役に立つだろう – Gnana