2012-09-26 26 views
1

我需要在DB(Redis的)汽车,它的牌子,型号和版本的存储,与下一个要求:我如何组织品牌,型号和代车型在Redis的

  • 我需要能够获取准确的品牌的所有汽车,品牌和型号或品牌,型号和代(例如,所有的宝马 - M3 - E30,或者只是所有BMW-M3等)

  • 我需要存储汽车的评级,例如我可以取顶部X宝马,或顶部X宝马E30 ...

我设计了一些结构,但它似乎太大了。我有4种对象类型:汽车,制造,模型,世代。它们按树形结构分组。树(根)的顶部是make,下一级是模型,下一代是底层,底层是汽车。因此,模型和世代分别对包含模型,世代和汽车的组进行了排序,汽车,世代和模型分别具有简单的字符串值,分别指向生成,模型和制作。

更多的,品牌和型号拥有自己的有序汽车集。

您对此有何看法?我希望联合制作,模型和生成单个对象,但现在不是如何。

回答

0

我会让你的基础对象成为一辆汽车,你可以用Make,Model,Generation,Rating和其他任何你需要的领域来建模。然后,对于每个品牌,都有一个分类集合,例如make:BMW => {car_id, car_id, car_id},其中得分等于评分。同样,有模型和世代排序集合,也按排名排序。然后,您可以使用zunionstore/zinterstore指定所需的确切属性集,并按评分从结果中提取数据。这样可以很容易地添加一个新的方面进行查询 - 您可以创建一个新的zsets集合,例如颜色并将其折叠到相同的联合/相交引擎中。

相关问题