建模到Cassandra的有效方法是什么?

时间:2017-10-09 22:40:34

标签: cassandra cassandra-3.0

我是Cassandra的新手,我试图将这个json模型化为cassandra表

  • 该模块具有N个标准
  • 标准有N个程序
  • 该程序有N个活动
  • 活动有N个任务

-

{
    "module": [{
        "id": "xxxxxx",
        "type": "module",
        "name": "xxxxxxx",
        "criteria": [{
            "id": "xxxxxx",
            "type": "crieria",
            "name": "xxxxxxx",
            "procedure": [{
                "id": "xxxxxx",
                "type": "procedure",
                "name": "xxxxxxx",
                "activity": [{
                    "id": "xxxxxx",
                    "type": "activity",
                    "name": "xxxxxxx",
                    "task": [{
                        "id": "xxxxxx",
                        "type": "activity",
                        "name": "xxxxxxx",
                        "user_assigned": "xxxxxx"
                        "date": "xxxxxxx"
                    },
                        ....     
                    ]
                },
                    ....
                ]
            },
                ....
            ]
        },
            ....
        ]
    },
    ....
    ]
}

我尝试使用UDT,但非冻结的UDT不允许在集合中:map ,我想让用户更新特定的部分。

CREATE TYPE IF NOT EXISTS task (
    id text,
    enumerate text,
    name text,
    user_assigned text,
    description text
);


CREATE TYPE IF NOT EXISTS activity (
    id text,
    enumerate text,
    name text,
    description text,
    task map<int, frozen<task>>
);


CREATE TYPE IF NOT EXISTS procedure (
        id text,
        enumerate text,
        name text,
        description text,
        activity map<int, frozen<activity>>
);

CREATE TYPE IF NOT EXISTS criteria (
    id text,
    enumerate text,
    name text,
    description text,
    procedure map<int, frozen<procedure>>
);

CREATE TYPE IF NOT EXISTS module (
    id text,
    enumerate text,
    name text,
    description text,
    criteria map<int, frozen<criteria>>
);

CREATE TABLE IF NOT EXISTS certification (
    id timeuuid,
    owner text,
    description text,
    name text,
    template map<int, frozen<module>>,
    images map<text, text>,
    PRIMARY KEY (id, owner)
);

limitations if I use collections

recomendations将尝试使用查询优先方法开始设计,但我想开始显示所有数据并通过指向任务的链接进入

建模的最佳方式是什么?。

更新

我需要的查询

  • Q1。按ID查找模块。
  • Q2。查找模块,标准,程序,活动 时间
  • Q3。按user_assigned
  • 查找任务
  • Q4。按活动查找任务

0 个答案:

没有答案