Cassandra嵌套数据模型/结构

时间:2017-06-14 06:52:41

标签: cassandra datastax cql nosql

我的项目中存在嵌套数据模型的问题。

以下是我项目中创建表和用户定义数据类型的脚本。

// main table for keeping journey information
CREATE TABLE journey (
    journeyid uuid,
    journeyname text,
    createdate timestamp,
    journeyassetdetail LIST<FROZEN<assettype>>, // this is materials for journey
    journeylist LIST<FROZEN<subjourneylist>>, // any journey can be a sub journey in other journey (a journey can have one or more sub-journey)
    PRIMARY KEY (journeyid)
);

CREATE TYPE subjourneylist (
    action FROZEN<actions>,
    product FROZEN<products>,
    suborderjourney int,
    subjourneyid uuid,
    createdate timestamp
);

CREATE TYPE assettype (
    type text,
    file LIST<FROZEN<file>>
);

CREATE TYPE file (
    assetfileid uuid,
    filename text,
    url text
);

正如您所看到的,我的旅程表上有2个UDT(资产类型和子旅行者),这意味着它可以是旅程行中的一个或多个子旅程和资产详细信息。我设计这样的数据模型是因为我关注READ性能,我的开发人员需要一次性将所有内容连接到数据库。

但回顾UPDATE,问题是当我需要更新任何资产或子旅程中的某些东西时,这意味着我必须将更新的数据应用于我们不知道的Journey(主要旅程表)如何以简单的方式做到这一点。

现在,我必须使用其他工具或自行开发的程序来准备脚本以重新创建整个旅程。

您的人员对我的数据模型有任何建议吗?或者我是否必须重新考虑其他数据模型以支持我的读写数据。

请随时给我一个例子或任何建议。

非常感谢。

0 个答案:

没有答案