我正在设计一个应用程序,用户可以通过笔记本电脑参数搜索历史销售数据。
让我们使用笔记本电脑,例如,笔记本电脑具有“ram”、“cpu”、“manufacturer”、“model”、“disktype”等属性。
请看下面的图片以了解前端应该是什么样子,因此我有两个问题:
我计划使用hbase,这样我就有了一个可扩展的平台。然而,我很难为我拥有的数据设计合适的模式。这就是我所设想的模式:
rowkey: transaction_id
column_family1: parametrics:
qualifier1: brand
qualifier2: memory
qualifier3: disk_type
qualifier4: transation_date
....
下拉列表应该只包含数据库中曾经存在的所有不同的值,也就是说,如果数据库中只有2gb和4gb笔记本电脑,用户不应该选择2或4以外的其他值,其他过滤器应该以相同的方式工作。这是否意味着每当用户打开页面时,我都必须遍历整个数据库以获取不同的值?
这是一个模型:
2条答案
按热度按时间z0qdvdin1#
如果您仅仅依靠hbase表来获取两个字段的引用数据,并显示在网页上,那么可能更多的是进行整体设计,而不仅仅是hbase设计。hbase中没有链接,比如外键,但就像其他rdbms一样,您可以运行distinct一次并将其存储在缓存中,以便在前端检索和显示。hbase适用于低延迟,但我仍然会再次考虑完全依赖hbase,为您提供下拉值。就连我也会等着这个问题的答案。快乐的设计。
ds97pgxw2#
你会跑吗
SELECT DISTINCT(category) FROM transactions
每次呈现搜索表单时都使用关系数据库?可能不会。您可以通过拥有一个category表、一个channel表等来规范模式。我建议使用hbase使用相同的方法,只是您必须在应用程序级别实现引用完整性和连接,或者使用类似phoenix的方法。