【发布时间】:2014-06-01 07:00:13
【问题描述】:
在我的项目中,我们有一个典型的客户订阅方案,其中我们必须将详细信息存储在 mongo 中。我们已经为此场景确定了以下数据模型:
即一个客户可以有多个订阅,每个订阅可以有多个激活码。
{
"CustomerCompany" : "abc",
"CustomerEmail" : "abc@abc.com",
"CustomerID" : "124598",
"CustomerName" : "abc xyz",
"CustomerType" : "Indivisual",
"IsOurCustomer" : true,
"Subscriptions" : [{
"ContentDeliveryFormat" : "XML",
"ContentDeliverySchedule" : "Daily",
"ContentProviderName" : "asdf",
"ContentType" : "CFR",
"ContentCategory" : "CFR",
"SubscriptionExpiryDate" : "11/19/2014 15:22:39:800 IST",
"SubscriptionID" : "111",
"ActivationCount" : 1,
"Activations" : [{
"ActivationCode" : "35f110b8-1b59-44c5-9874-adcc9d008898",
"ActivationCodeGenDate" : "05/23/2014 15:22:59:997 IST",
"ActivationExpiryDate" : "05/28/2014 15:22:59:997 IST",
"ActivationDate" : null,
"ActivationStatus" : "Unused"
}],
"SubscriptionStatus" : "Subscribed"
}],
"_id" : ObjectId("537f1a7ce96e0b34e98b8de7")
}
由于我是 mongodb 的新手,对此进行详细搜索并不能说服我在这里发布我的查询。
我有以下两个问题:
按照 mongodb 中要遵循的最佳实践,建模是否正确?
如果我遵循这种方法,那么使用当前数据模型,一个简单的 搜索输入为激活码的文档,结果最差 O(n3) 的案例效率。我认为如果系统扩大规模,这 方法将是一个很大的 NO-NO。
请专家对这种情况发表评论吗?
提前致谢
【问题讨论】:
标签: performance mongodb data-modeling