我通过 Datastax 驱动程序在 Cassandra 中存储一些数据,并且需要存储无符号 16 位和 32 位整数。对于无符号 16 位整数,我可以轻松地将它们存储为有符号 32 位整数,并根据需要进行转换。然而,对于无符号 64 位整数,我不知所措。我可以将它们存储为字符串并解析它们,也可以将它们存储为字节数组。我可以将它们存储为 64 位有符号整数,并执行与 64 位无符号整数之间的转换所需的位操作。
推荐的方式是什么?
我正在尝试为消息框应用程序找到最佳的数据模型。该消息按以下顺序显示:首先出现 \xe2\x80\x98unread\xe2\x80\x99,然后当用户滚动时,将出现 \xe2\x80\x98read\xe2\x80\x99 消息。在这两个类别中,我想按到达时间对消息进行排序。类似于 Gmail 中的优先收件箱。
\n\n我想使用的第一个模式是:
\n\nCREATE TABLE inbox \n (userId uuid,\n messageId timeuuid,\n data blob,\n isRead boolean,\n PRIMARY KEY(userId, isRead, messageId))\n WITH CLUSTERING ORDER BY (isRead ASC, messageId DESC);\nRun Code Online (Sandbox Code Playgroud)\n\n所以我的数据首先按布尔字段排序,然后按时间排序。现在,我可以轻松地先查看“未读”消息,在它们全部结束后,我将开始阅读“已读”消息。
\n\n问题是我无法更新任何消息状态,因为它是主键的一部分。我可以执行删除然后插入批量操作,它也是同一行。
\n\n另一个解决方案是:
\n\nCREATE TABLE inbox\n (userId uuid,\n messageId timeuuid,\n data blob,\n isRead boolean,\n PRIMARY KEY((userId, isRead), messageId))\n WITH CLUSTERING ORDER BY (messageId DESC)\nRun Code Online (Sandbox Code Playgroud)\n\n每个状态都有一行。我获得了非常轻松的访问权限,但这是否意味着我必须处理交易?读取消息时,我必须从 \xe2\x80\x98unread\xe2\x80\x99 行中删除它,并将其插入到 \xe2\x80\x98read\xe2\x80\x99 行,它们可能位于不同的分区中。
\n\n分区键的另一个版本可以是:
\n\nPRIMARY KEY(userId, messageId)\nRun Code Online (Sandbox Code Playgroud)\n\n然后我会在 isRead 上添加一个二级索引。我的查询将始终针对某个用户而不是一组用户。
\n\n有什么更好的想法吗?或者还有其他的建模想法吗?
\ndata-modeling cql cassandra secondary-indexes clustering-key
假设我们有可以评论视频的用户,并且我们希望显示带有用户名的视频的所有评论。用户也可以转到他的个人资料页面并更改他的名字。
基于此答案 Cassandra非规范化数据模型中介绍的 Cassandra 数据建模实践,我创建了这样的表:
CREATE TABLE users (
user_id UUID,
first_name TEXT,
last_name TEXT,
PRIMARY KEY ((user_id))
);
CREATE TABLE comments_by_video (
video_id UUID,
added_at TIMESTAMP,
user_id UUID,
comment TEXT,
first_name TEXT,
last_name TEXT,
PRIMARY KEY ((video_id), added_at, user_id)
);
Run Code Online (Sandbox Code Playgroud)
看起来棒极了,我们只需一个查询就可以获得视频评论所需的数据。
现在,让我们考虑这样的用例。
用户创建了大量评论(例如 10 000 条),然后决定更改他的名字。我们应该更新所有评论以更改他的名字吗?有没有办法让它变得高效?
我正在使用 Firestore + angularfire 构建我的第一个应用程序,由于缺乏 Firestore 经验,定义数据模型非常困难。我需要你的帮助。
我有以下实体和依赖项。
然后是以下规则
正如您所看到的,存在多个依赖项,包括多个 OR 条件,Firestore 中的“where”过滤器不支持这些依赖项。因此,我不确定是否应该将客户集合嵌套到每个餐厅文档中,或者是否应该将所有客户放在根集合中然后过滤它们。
您能否帮我解决这个问题,并提供一些关于您认为如何使用 Firestore 规则进行管理的最佳方法的想法?
我有一个包含生产数据的现有 Oracle 数据库。我打算迁移到MongoDB,所以我想将Oracle数据库中现有的数据迁移到MongoDB。Oracle数据库和MongoDB中存储的数据的数据模型会有所不同。
我计划使用https://blogs.oracle.com/jsondb/generate-json-data从 Oracle 数据库获取所有 json 数据。一旦我获得包含所有数据的 json 文件,我会将其导入到 MongoDB 中。如果从 Oracle 数据库提取的数据不符合我的要求,我将创建一个实用程序来将每个集合的数据转换为多个 json 文件。
如果有更好的方法,我需要一些建议,我的解决方案是否是解决问题的正确方法?
我们正在构建一个Data Vault (2.0)模型来捕获 SalesForce 数据。与许多其他源一样,源中的记录被软删除。当我们将数据获取到数据模型时,我们不想过滤任何数据,也不想捕获目标系统中已删除的记录。搜索了处理数据仓库模型中已删除记录的最佳实践,但没有成功。有人可以在这里说明一下吗?我们是否应该添加IsDeleted标志Hub或Satellite考虑模型的未来扩展以及要遵循的最佳设计实践。此外,此处的任何参考材料链接都会有很大帮助。谢谢。
设置:
我有几个各种数据结构的集合,代表虚拟系统中模拟对象的状态.我还有许多函数可以转换(即基于原始对象和0或更多参数创建对象的新副本)这些对象.
目标是允许用户选择一些对象来应用转换(在模拟规则内),将这些函数应用于这些对象,并通过用新的对象替换旧对象来更新集合.
我希望能够通过将较小的变换组合成较大的变换来构建这种类型的函数.然后评估这个组合功能.
问题:
如何构建我的程序以使其成为可能?
我用什么样的组合来建立像这样的交易?
想法:
1和2看起来像是带着很多行李,特别是如果我想最终将一些集合移动到数据库中.(Darn IO Monad)
3似乎运作良好但开始看起来很像重新创建OOP.我也不确定在什么级别使用IORef.(例如IORef (Collection Obj)或Collection (IORef Obj)或data Obj {field::IORef(Type)} )
4感觉功能最强大,但它似乎也创造了很多代码复杂性而在表现力方面没有太大的回报.
例
我有一个网店前面.我维护了一系列产品,其中包括库存数量和价格(等等).我还有一些对商店有信用的用户.
用户出现并选择3个产品购买并使用商店信用结账.我需要创建一个新产品集合,其中有3个产品的库存量减少,创建一个新的用户集合,用户帐户借记.
这意味着我得到以下内容:
checkout :: Cart -> ProductsCol -> UserCol -> (ProductsCol, UserCol)
Run Code Online (Sandbox Code Playgroud)
但是生活变得更复杂,我需要处理税收:
checkout :: Cart -> ProductsCol -> UserCol -> TaxCol
-> (ProductsCol, UserCol, TaxCol)
Run Code Online (Sandbox Code Playgroud)
然后我需要确保将订单添加到发货队列:
checkout :: Cart
-> ProductsCol
-> UserCol
-> TaxCol
-> ShipList
-> (ProductsCol, UserCol, TaxCol, ShipList)
Run Code Online (Sandbox Code Playgroud)
等等...
我想写的是类似的东西
checkout …Run Code Online (Sandbox Code Playgroud) 最初设计项目时,我们有几个实体到目前为止尚未使用(并且我们不打算在不久的将来实现它们)。嗯,我想从我的项目中删除它们。我将这样进行(手动执行所有步骤):
src/Resources/config/doctrinesrc/Entity我想知道的是:是否有任何例程(例如控制台命令)可以支持此过程?例如,如果我跑步
php app/console doctrine:schema:update --dump-sql
Run Code Online (Sandbox Code Playgroud)
删除所有关系并删除文件后,得到删除相应表的SQL语句吗?
我正在尝试在Rails(ActiveRecord)中实现OpenEHR参考模型,但我发现了一些问题,因为它适用于许多不同的classess,
这是一个组成图:

正如你所看到的,很多类"继承"了一些属性Locatable或Pathable*(整个引用很大,几乎每个类都继承自它).
此外,它建立data_types作为其他类,例如在同一组合类中,language是类CODE_PHRASE,具有两个属性(链接).
因此我遇到两个问题:1)如何从抽象类继承属性,以及2)我如何"包含"所需的"类".
对于我在使用多态关联时遇到的第一个问题.
对于第二个,我想用STI,但我发现快了很多,几乎同类机型的(它们是完全一样的实际): ,CompositionLanguage,CompositionTerritory,EntrySetting,EntryEncoding我只在使用type属性为"反向链接",例如:组合类最多可以有三个属性CODE_PHRASE,因为所有三个引用都有不同的属性(语言,区域和类别),我认为我需要知道关联(知道Composition有3个code_phrases,但是没有意义,但是我不知道哪一个是相应的属性).另一方面,Entry类,具有setting和encoding属性(链接).
我意识到可能有不同的方法,但我真的想知道是否可能是Rails(或ActiveRecord).或者,也许我错过了概念信息.
可以说我在JAVA中有以下模型
class Shape {
String type;
String color;
String size;
}
Run Code Online (Sandbox Code Playgroud)
并说我有以下基于上述模型的数据.
Triangle, Blue, Small
Triangle, Red, Large
Circle, Blue, Small
Circle, Blue, Medium
Square, Green, Medium
Star, Blue, Large
Run Code Online (Sandbox Code Playgroud)
我想回答以下问题
Given the type Circle how many unique colors?
Answer: 1
Given the type Circle how many unique sizes?
Answer: 2
Given the color Blue how many unique shapes?
Answer: 2
Given the color Blue how many unique sizes?
Answer: 3
Given the size Small how many unique shapes?
Answer: …Run Code Online (Sandbox Code Playgroud) data-modeling ×10
cassandra ×3
nosql ×2
.net ×1
activerecord ×1
aerospike ×1
c# ×1
cql ×1
data-vault ×1
database ×1
doctrine-orm ×1
firebase ×1
haskell ×1
ioref ×1
model ×1
mongodb ×1
openehr ×1
oracle ×1
php ×1
symfony ×1