关于mongodb做事方式的问题

时间:2010-06-29 05:27:55

标签: mongodb

假设你是一个销售产品的商店,每个产品都有一定的属性...例如,假设你有钻头。有混凝土钻头,铲子钻头等,但它们都有一些直径的概念...所以如果你有一些产品{价格:14.95,直径:3},无论如何,但是你决定要让商店超级通用,允许用户添加不同的属性。如果我进行了大量的练习并且决定“尺寸”比“直径”更好的名称,那么似乎会出现问题。什么是最好的(mongodbish)方式来处理这个?可能是一个“钻取”类别,其中包含属性列表{category_name:“钻取”,属性:{“uniqueID1”:“diameter”,“uniqueID2”:“coating”}}或类似的东西,然后为每个钻孔{价格:14.95,属性:{“uniqueID1”:3,“uniqueID2”:“none”}}。分配“uniqueID”的最佳方法是什么,或者有更好的方法来做到这一点?

1 个答案:

答案 0 :(得分:0)

你为什么这样做?

您在数据库中所谓的内容并不需要反映您在应用中所谓的内容......

所以如果这个项目是{price:14.95,pancake:4}它没有任何区别,只要开发者知道煎饼==直径......

所以你可以有一个钻头列表

{ name: "Diamond carbide bit", price: 14.95, size: 3 }
{ name: "Cheap ass bit", price: 3.95, size: 3, quality: "poor" }
{ name: "Kryptonite bit", price: 39.95, size: 10, quality: "extreme", comment: "For killing Superman by drill" }

无需将属性设为钻头的“子项”...