Database design 我的项目的NoSQL(cassandra)数据模型
我需要你对我的项目数据模型设计的意见。我的项目是实时推荐系统。有一些推荐算法的集合。意思是这样的: 收藏1{ 算法1,算法5,算法6 } 收藏2{ 算法5,算法6,算法7,算法8 } 等等 我需要在收集的每个算法(每2分钟)中存储数据,如成功率、选择概率、分数等。所以我选择了Cassandra作为我的数据存储,因为它可以很好地处理时间序列。我需要将数据存储起来,以便稍后在一些图表中显示。你认为我的数据模型解决方案行吗?我是这样做的:Database design 我的项目的NoSQL(cassandra)数据模型,database-design,nosql,cassandra,column-family,Database Design,Nosql,Cassandra,Column Family,我需要你对我的项目数据模型设计的意见。我的项目是实时推荐系统。有一些推荐算法的集合。意思是这样的: 收藏1{ 算法1,算法5,算法6 } 收藏2{ 算法5,算法6,算法7,算法8 } 等等 我需要在收集的每个算法(每2分钟)中存储数据,如成功率、选择概率、分数等。所以我选择了Cassandra作为我的数据存储,因为它可以很好地处理时间序列。我需要将数据存储起来,以便稍后在一些图表中显示。你认为我的数据模型解决方案行吗?我是这样做的: CREATE TABLE algorithm_by_colle
CREATE TABLE algorithm_by_collection_and_date (
algorithm_id text,
collection_id text,
date text,
event_time timestamp,
score double,
probability double,
PRIMARY KEY ((algorithm_id,collection_id,date),event_time)
);
因此,它的设计类似于行分区,通过向行键添加数据来限制集合中每个算法的列数(按日期)
你觉得这个怎么样?谢谢,Jan我想要这个结构-它可以让你的结构正常化,让它成为一个更干净的设计。我已经完成了这项工作,请为列添加正确的数据类型以及引用完整性约束
CREATE TABLE algorithm
(
algorithmId uuid PRIMARY KEY,
algorithmName text
)
CREATE TABLE collection
(
collectionID uuid PRIMARY KEY,
collectionName text
)
CREATE TABLE algo_collection
(
algoCollectionID uuid PRIMARY KEY
collectionID
algorithmID
)
CREATE TABLE recommendation
(
algoCollectionID
date
event_time,
score,
probability
)