我想听听您对我的项目数据模型设计的意见。我的项目是实时推荐系统。有一些推荐算法的集合。它的意思是:
文物{算法1,算法5,算法6}
collection2 {算法5,算法6,算法7,算法8}
等。
和我需要存储数据,如-成功,选择的概率,得分等每个算法(每2分钟)的集合。所以我选择Cassandra作为我的数据存储,因为它可以很好地处理时间序列。我需要有我的数据存储,稍后在一些图形和图表中显示。你认为我的数据模型解决方案可以吗?我是这样写的:
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)
);
所以它被设计成行分区,通过向行键添加数据来限制集合中每个算法的列数(按日期)I。
你觉得这个怎么样?谢谢,简
我会有这样的结构-它将允许你规范你的结构,使它更干净的设计。我已经匆忙了,请为列添加正确的数据类型以及引用完整性约束。
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
)