第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何在 Apache Cassandra 中正確建模數(shù)據(jù)以允許通過(guò)兩個(gè)不唯一的不同字段進(jìn)行查詢

如何在 Apache Cassandra 中正確建模數(shù)據(jù)以允許通過(guò)兩個(gè)不唯一的不同字段進(jìn)行查詢

Go
慕娘9325324 2022-06-13 16:29:09
我正在使用 Apache Cassandra 在 Go 中開發(fā)一個(gè)簡(jiǎn)單的 API,我想知道表示我擁有的數(shù)據(jù)的最佳方式是什么。我在 Go 中有以下結(jié)構(gòu)。type Message struct {    Id          gocql.UUID `json:"id"`    Email       string     `json:"email"`    Title       string     `json:"title"`    Content     string     `json:"content"`    Number      int64      `json:"number"`    DateCreated time.Time  `json:"dateCreated"`}在 Cassandra 中創(chuàng)建數(shù)據(jù)結(jié)構(gòu)以允許通過(guò)不唯一的電子郵件和號(hào)碼進(jìn)行查詢的最佳方法是什么(只有 ID 是唯一的。可以有多個(gè)具有相同電子郵件和/或號(hào)碼的消息)?我應(yīng)該創(chuàng)建兩個(gè)單獨(dú)的表以允許通過(guò)這兩個(gè)字段進(jìn)行查詢嗎?對(duì)于按 Id 查詢,我將創(chuàng)建如下表:USE some_keyspace;CREATE TABLE IF NOT EXISTS messages(    id           UUID,    email        TEXT,    title        TEXT,    content      TEXT,    number.      BIGINT,    date_created TIMESTAMP,    PRIMARY KEY (id));
查看完整描述

1 回答

?
LEATH

TA貢獻(xiàn)1936條經(jīng)驗(yàn) 獲得超7個(gè)贊

最好的方法?為您要服務(wù)的每個(gè)查詢創(chuàng)建一個(gè)表。使用您要查詢的列和(id以確保唯一性)構(gòu)建 PRIMARY KEY 定義:


CREATE TABLE IF NOT EXISTS messages_by_email (

    id           UUID,

    email        TEXT,

    title        TEXT,

    content      TEXT,

    number      BIGINT,

    date_created TIMESTAMP,

    PRIMARY KEY (email,id));


CREATE TABLE IF NOT EXISTS messages_by_number (

    ....

    PRIMARY KEY (number,id));

當(dāng)您向這些表寫入一行時(shí),請(qǐng)使用BATCH以確保原子性。


BEGIN BATCH

    INSERT INTO messages (id,email,number,title,content,date_created)

        VALUES (uuid(),'aaron@dot.com',1,'Hi','Cassandra rocks!',toTimestamp(now()));

    INSERT INTO messages_by_email (id,email,number,title,content,date_created)

        VALUES (uuid(),'aaron@dot.com',1,'Hi','Cassandra rocks!',toTimestamp(now()));

    INSERT INTO messages_by_number (id,email,number,title,content,date_created)

        VALUES (uuid(),'aaron@dot.com',1,'Hi','Cassandra rocks!',toTimestamp(now()));

APPLY BATCH;


查看完整回答
反對(duì) 回復(fù) 2022-06-13
  • 1 回答
  • 0 關(guān)注
  • 105 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)