database - 在 cassandra 中,如果我每个查询都有一个表并且我有多个过滤器组合,我是否为每个查询创建一个表?

标签 database cassandra nosql

我是 NoSQL 的新手,我正试图了解如何为电子商务网站正确建模数据。亚马逊有针对不同类型产品的这些过滤器,例如,如果您搜索笔记本电脑,则会有品牌、处理器、硬盘、显卡、操作系统等过滤器。

所以据我所知,首先主键将按浏览节点 ID(即此处的笔记本电脑)进行分区,然后我们可以将其他键作为排序键,但问题是如果有 6 个过滤器,将会有可以组成64种组合。我可以选择品牌和处理器,或者品牌和显卡,或者处理器和显卡,这将与过滤器的数量成指数关系,所以我假设为每种可能性都准备一个表格是不可行的。

我也怀疑在获取整个分区数据后进行过滤是否可行,那样太慢了。那么应该如何对数据库进行建模。 对不起,如果我的问题没有意义。

最佳答案

您要做的是搜索和过滤。我认为尝试在 cassandra 中模拟所有此类条件组合不是一个好主意,而且它可能无法扩展。对于高流量企业系统,使用 ElasticSearch 或 SOLR 是此类场景的选择之一,而不是直接查询数据库(即使它是 RDBMS)。

关于database - 在 cassandra 中,如果我每个查询都有一个表并且我有多个过滤器组合,我是否为每个查询创建一个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51119823/

相关文章:

sql - 数据库设计——它是否尊重 3rd NF?

apache-spark - Spark Cassandra 使用区分大小写的名称写入 UDT 失败

java - 在cassandra中存储小文件

amazon-web-services - 我真的应该对所有数据使用一个DynamoDB表吗?

sql - 所有可能接触项目后端的开发人员都应该知道哪些有用的 SQL 语句/使用模式?

sql - 在 Left Join 期间对整行进行空检查

java - Java 中的 Hibernate 插入查询

cassandra - 如何集群嵌入式Cassandra实例?

MongoDB到Java的集成

php - 与 NoSQL 数据库相关