我有一個包含複合主鍵的表。 名稱,描述,ID如何通過Cassandra中的唯一ID處理搜索
PRIMARY KEY (id, name, description)
每當搜索卡桑德拉我需要提供三個按鍵,但現在我有一個使用案例,我想刪除,更新和得到的只是基於ID。
因此,我創建了一個物化視圖,對這張表進行了重新排序,使ID先排序,這樣我就可以根據ID進行搜索。
但是,如何刪除或更新只有一個ID的記錄?
我有一個包含複合主鍵的表。 名稱,描述,ID如何通過Cassandra中的唯一ID處理搜索
PRIMARY KEY (id, name, description)
每當搜索卡桑德拉我需要提供三個按鍵,但現在我有一個使用案例,我想刪除,更新和得到的只是基於ID。
因此,我創建了一個物化視圖,對這張表進行了重新排序,使ID先排序,這樣我就可以根據ID進行搜索。
但是,如何刪除或更新只有一個ID的記錄?
,如果你使用的是分區鍵 3列,或者如果您使用的是複合主鍵目前尚不清楚。
如果您使用的是分區鍵 3列:
CREATE TABLE tbl (
id uuid,
name text,
description text,
...
PRIMARY KEY ((id, name, description))
);
通知雙括號你需要的所有3個組成部分,以確定您的數據。因此,當您通過物化視圖中的ID查詢數據時,您還需要檢索name
和description
字段,然後每個元組發出一個刪除<id, name, description>
。
相反,如果使用複合主鍵與ID
是唯一分區鍵:
CREATE TABLE tbl (
id uuid,
name text,
description text,
...
PRIMARY KEY (id, name, description)
);
通知單括號,那麼你可以簡單地發出一個刪除,因爲你已經知道該分區並不需要其他任何東西。
檢查this SO帖子中有關於主鍵類型的明確說明。
另一件您應該注意的事情是物化視圖會爲您隱藏一張表格,關於數據建模的相同規則/想法也應該適用於物化視圖。
是它是一個3列的複合主鍵,但如果我只用id創建表,當我創建複合表時,我只能再添加一列來搜索。 –
每個ID有多少個唯一的名稱和說明? –