我有两个表这样的SQL数据库:迁移到SQL核心价值和MapReduce
Users
Id (PK)
Name
Orders
Id (PK)
UserId (FK - User.Id)
Amount
我想这在的兴趣转移到NoSQL的(即MongoDB的)key-value存储避免连接(在非常大的结果集上)。
- 这个结构是否有意义被移到KV数据库?如果不是,我应该添加另一个表,如User_Orders与用户和订单相关吗?
我有一个屏幕显示网格中的订单,但我也想显示用户名。在SQL中,我将使用联接从数据库中提取此信息。
- 除了每次Order.UserId查询数据库以获取相关用户以外,NoSQL中是否存在等价物(没有连接)?如果不是,假设我的架构允许我运行多个前端和应用程序服务器,那么如何在此实例中应用(Distributed?)Map-Reduce来实现相同的目标?
谢谢!
遵循这种方法,我将如何跟踪所有需要更新的集合,当另一个更改?我不需要在任何地方修改我的代码以将更新传播到这些集合吗? – Harper
是的,你必须在应用层保持这种逻辑,而不是依赖数据库的约束。如果你有一个阅读繁重的系统,它是相当有效的。如果它写得很重(属于那个特定的属性),那么我绝对不会推荐它。 – lobster1234
谢谢你的回答! – Harper