我一直在思考在数据库中存储产品/客户/和交易信息的最佳方式。我们说的是成千上万的记录...
我对如何在纸上表示数据有一个非常清楚的想法,它基本上看起来像一棵树……
Car ->大众->高尔夫-> 1.6L 5门
这里的问题是,树中的每个产品都需要不同的属性。例如,如果产品是一艘船,它不需要“轮子大小”属性,但需要“螺旋桨大小”。不管怎么说,你已经明白了!
我对NoSQL非常陌生,以前只使用过MySQL,但它似乎是这里最好的解决方案。我喜欢没有模式的想法。
有没有人有构建这样的系统的经验?你去做什么?有什么特别的变种吗?
发布于 2011-11-02 01:27:04
如果您需要关系结构(例如,树结构),那么您应该使用关系数据库模型。NoSQL最适合于只想存储数据而不考虑其结构的情况。
如果您想要有一组任意的可选信息,您可以坚持使用关系数据库,并使用BLOB列来存储可选数据,可能是JSON字符串。由于以下几个原因,这可能是最好的:
SELECT * FROM products WHERE catid = 123.LIKE以仅返回JSON blob中包含该特定列名的行,然后在代码中手动筛选结果。发布于 2011-11-02 05:43:16
您正在寻找的内容可以很容易地在文档中表示(面向DB =>,例如CouchDB )。例如,要表示您的大众:
{
"Cars": [
{"Make":"VW", "Model":"Golf", "Engine":1.6, "Doors": 5, "Wheel Size": 19},
{"Make":"Toyota", "Model":"Supra", "Engine":2.4, "Doors": 5, "Packages":["Tech", "Cold Weather"]}
]
}由于模式是“自由的”,您可以添加remove car的属性。您可以阅读有关CouchDB文档API here的更多信息。
发布于 2011-11-02 01:21:12
我认为这可能是一个好主意,除非你需要某种关系。例如,如果你想将汽车链接到车主,你通常会有一个表" cars“和一个表" owners ",如果你想按车主定位一辆车,你可以从车主那里搜索并连接到cars上。
我相信在大多数情况下,也可以在无SQL设置下解决这个问题,但它可能会变得相当复杂。
如果你只是在存储模型数据,这听起来很简单。也许你可以制作它的原型?
https://stackoverflow.com/questions/7970205
复制相似问题