Как создать таблицу для поддержания иерархической структуры в Кассандре? - PullRequest
1 голос
/ 16 января 2020

Нам нужна таблица для поддержания иерархии для выполнения всех операций CRUD.

Пример:

 - Karnataka
   - Bangalore
     - Kormangala
   - Hubli
 - Madhya Pradesh
   - Gwalior
 - Delhi

Я подумал о следующей структуре:

Таблица 1 :

State ID(uuid)    Name            childCount
101               Karnataka        2
102               Bangalore        1
103               Kormangala       0
104               Hubli            0
105               Madhya Pradesh   1
106               Gwalior          0
107               Delhi            0

Таблица 2:

Parent_Id         child_id
101                102
101                104
102                103
105                106

Пожалуйста, предложите лучшее решение.

1 Ответ

1 голос
/ 16 января 2020

Простое решение:

CREATE TABLE state 
 (id int,
 name text,
 child_count int,
 PRIMARY KEY (id));

 CREATE TABLE hierarchy  
 (parent_id int,
 child_id int,
 PRIMARY KEY (id, child_id));

child_id должен быть столбцом кластеризации.

Менее очевидное решение со столбцами stati c:

 CREATE TABLE state 
 (id int,
 name text static,
 child_count static,
 child_id int,
 PRIMARY KEY (id, child_id));

Для получения дополнительной информации о столбцах stati c: https://docs.datastax.com/en/dse/6.0/cql/cql/cql_using/refStaticCol.html

Я надеюсь, что это поможет

...