我来自 RDBMS 背景并设计了一个以 Cassandra 作为后端的应用程序,我不确定我的设计的有效性和可扩展性。
我正在开发某种书籍/电影/等的评级/反馈应用程序。由于 Cassandra 有灵活列族(稀疏结构)的概念,所以我想到了使用以下模式:
user-id (row key): book-id/movie-id (dynamic column name) - rating (column value)
如果我这样做,我最终会拥有数百万列(这将是 RDBMS 中的行),尽管本质上与行键无关,例如:
user1: {book1:Rating-Ok; book1023:good; book982821:good}
user2: {book75:Ok;book1023:good;book44511:Awesome}
由于所有列族都存储在一个文件中,因此我不确定这是否是可扩展的设计(或根本不是设计!)。此外,可能会有类似的查询"pick all 'good' reviews of 'book125'"
。我应该使用什么方法?