让我们考虑一个案例,我们有三个级别的服务
Rose
-red rose
- red rose by A dealer
- red rose by B dealer
-yellow rose
- yellow rose by A dealer
- yellow rose by B dealer
那么在表之间创建数据库关系的理想方案是什么:
我想为产品和服务/口味创建数据库结构。比如说玫瑰是我的产品然后红玫瑰,黄玫瑰,黑玫瑰是我的服务和A经销商的红玫瑰和B经销商的红玫瑰是我的服务...在这种情况下我将如何在mongodb制作集合
答案 0 :(得分:1)
您的数据似乎是关系型的。 MongoDB不是关系数据库。这意味着您无法在数据中创建关系。如果你想使用MongoDB,你必须自己创建数据之间的关系。如果它值得,那取决于你。大多数人选择MongoDB来提高速度,但是当你的数据非常依赖关系时,MongoDB可能根本不会帮助你。
因此,如果您要在MongoDB中创建此结构,您将拥有三个不同的集合:roses
,flavors
和dealers
。如果你想得到一个特定风味的玫瑰和某个经销商,你将不得不执行3个单独的查询,然后将3个结果连接在一起,在mysql中你可以做1个查询,你得到1个结果。请注意,这种差异会随着每一层关系变得更大。
如果您的集合非常大,并且可能需要对其进行复杂过滤,那么最终执行单独的MongoDB查询仍然可能更快。您应该记住,这不是一个免费的午餐,与关系数据库相比,您将拥有完全不同的设置,您应该考虑它。
为了提高速度,您还可以考虑在关系数据库之上添加一个缓存层,实际上您可以使用MongoDB。