如何创建具有自己类型字段的 CQL 类型?

How can I create a CQL type that has a field of its own type?

我想创建一个狗数据库。我想使用狗类型。狗类型有一个字段 'parent',可以引用另一只狗,狗的 parent。

我 运行 遇到了一个问题,因为这个脚本试图定义狗的类型,它在 属性 parent 中引用了它自己的类型,但是狗的类型不是'尚未创建。

CREATE TYPE IF NOT EXISTS dog (
    name text,
    parent frozen<dog>
);

我能做些什么来解决这个数据结构问题?

谢谢。

您不能将 CQL user-defined 类型嵌套在它自己的定义中,因为它变成了循环引用 -- 无法创建嵌套自身的 UDT,因为嵌套类型不存在,因为它还没有'尚未创建。兜兜转转。

附带说明一下,除非绝对必要,否则我们通常不鼓励使用 UDT,因为它们会给您的数据模型带来复杂程度。此外,嵌套的 UDT 将复杂性提高到更高的水平。

尽可能尝试在 table 中使用本机 CQL 列以保持简单。在你的例子中,我看不出为什么你不能将狗的名字作为一列,而狗的 parent 作为同一 table 中的另一列。同样,这使它变得简单并且更易于维护。干杯!