当前位置: 首页 > 知识库问答 >
问题:

使用Cassandra CQL收集嵌入式对象

有德业
2023-03-14

我正在尝试使用CQL将我的域模型放入卡桑德拉中。假设我有USER_FAVOURITES张桌子。每个收藏夹都有 ID 作为主键。我想按顺序存储最多 10 个多个字段的记录的列表,field_name、field_location等。

对这样的表进行建模是个好主意吗?

CREATE TABLE USER_FAVOURITES (
    fav_id text PRIMARY KEY,
      field_name_list list<text>,
      field_location_list list<text>
);

并且对象将由匹配索引的列表项构成(例如

Object(field_name_list[3],field_location_list[3]))

我总是在一起查询收藏夹。我可能想添加和项目到某个位置,开始,结束或中间。

这是一个好的做法吗?看起来不像,但我只是不知道如何在这种情况下对对象进行分组,当我想通过例如field_location或更复杂的排序规则来保持它们的顺序时

共有2个答案

郁鸿博
2023-03-14

我个人的建议是不要过分强调卡桑德拉的收藏,因为它将来会进一步绽放。虽然上面指定的场景是非常可能的,这样做没有坏处。

狄卓君
2023-03-14

我建议采用以下结构:

CREATE TABLE USER_FAVOURITES (
    fav_id text PRIMARY KEY,
    favs map<int, blob>
);

这将允许您通过索引访问任何项目。map的值部分是blob,因为可以轻松地将整个所需对象序列化为二进制并稍后反序列化。

 类似资料:
  • 在向信封添加签名者时,我看到了“emailnotification”选项(https://www.docusign.com/p/restapiguide/content/rest%20api%20references/recipities/signers%20recipition.htm)。但它看起来是关于DocuSign发送给签名者的电子邮件通知的语言。我想它不适用于我的用例,因为我使用嵌入式签

  • 问题内容: 我想知道是否有可能在另一个Embeddable中包含Embeddable的ElementCollection? 这是我的供应商实体的示例,该实体具有可嵌入类型的地址列表: 这是我的可嵌入地址,其中包含可嵌入电话的列表 这是嵌入式电话的定义 我目前正在使用JPA 2 + Hibernate 3.6.x对此进行测试 在地址中使用嵌入式电话在我的测试中导致错误。这是最底层的部分调试消息: 删

  • 我正在为java类的介绍进行分配,并且遇到了困难,问题如下: “要求用户输入一个数字。您应该使用一个输入对话框来进行此输入。请确保将对话框中的字符串转换为实数。程序需要跟踪用户输入的最小数字和输入的最大数字。询问用户是否要输入另一个数字。如果是,请重复此过程。如果不是,请输出用户输入。 当用户想要退出时,此程序在程序末尾输出最大和最小的数字。 此外,您的程序应该考虑到用户只输入一个数字的情况。在这

  • Ruby, like fire, is a very useful friend, and a very dangerous enemy. — Mikkel Bruun 在模板中使用嵌入式 Ruby 帮助构建动态的配置文件或实现数组遍历是一种强大的方式。 然而,你也可以在配置清单中使用 inline_template 函数直接嵌入 Ruby 而不必使用分离的模板文件。 操作步骤 在 Puppet

  • 我将使用嵌入在 JBoss EAP 6.2 中的 HornetQ 2.3.12,并且需要一些集群队列。 我是否需要设置 JBoss 集群才能让 JMS 集群由大黄蜂 Q 提供支持,或者大黄蜂 Q 是独立的?根据文档,我认为是后者,因为大黄蜂Q集群是大黄蜂Q的一部分,可以在没有JBoss的情况下存在。 节点通过核心网桥连接,因此部署在每个节点中的应用程序将对队列名称执行本地 JNDI 查找,而无需集

  • 当前状态: > 我将MQTT协议支持添加到Wildfly embedded Apache Artemis(添加了“Missing”文件夹和Artemis-mqtt-protocol-.jar,并在module.xml中启用了该协议) 我正在为MTQQ使用完整的独立配置和添加的acceptor: AMQ221020:协议[MQTT]在127.0.0.1:1883启动接受器 AMQ221007:服务器