MongoDB NoSQL模式设计
我有一个数据库设计问题,我真的需要一些帮助和建议 这是为了我们建立的拍卖平台。最初的策略是“用户可以在一次拍卖中出价”,MongoDB被选为这项工作的执行者,目前为止效果良好 现在我正在尝试实现一个不同的模式来支持拍卖组,这样用户就可以创建一个由多个拍卖组成的拍卖组,而客户可以对一个拍卖或一个拍卖组进行出价 第一组MongoDB NoSQL模式设计,mongodb,mongodb-query,Mongodb,Mongodb Query,我有一个数据库设计问题,我真的需要一些帮助和建议 这是为了我们建立的拍卖平台。最初的策略是“用户可以在一次拍卖中出价”,MongoDB被选为这项工作的执行者,目前为止效果良好 现在我正在尝试实现一个不同的模式来支持拍卖组,这样用户就可以创建一个由多个拍卖组成的拍卖组,而客户可以对一个拍卖或一个拍卖组进行出价 第一组 拍卖 拍卖B 拍卖C 第3组 拍卖D 我正在努力寻找正确的方法。理想情况下,在搜索拍卖时,API返回将所有拍卖分组。至少这是实施集团战略的主要要求,否则对客户毫无用处 我是这
- 拍卖
- 拍卖B
- 拍卖C
- 拍卖D
- Id
- 分类ID、结束和状态-复合键
- 开始
- MaxBid
- MinBid
- 出价-用户ID、数量和日期
- 声誉-最低声誉需要根据完成的工作数量、收入和他们的反馈发布出价
- 名称
- 说明
- 统计数据
- 出价-用户的工作建议:拍卖Id、金额、日期
- 拍卖-创建拍卖
- 声誉
- 总收入
- 类别-用户完成作业的类别Id
此应用程序中还有其他功能,但它们与拍卖组无关。您必须复制一些数据以进行最佳搜索。如果您来自关系数据库阵营,这可能是最难学习的事情之一 您的AuctionGroups集合需要有足够的关于每次拍卖的数据,以便进行有用的搜索,而不仅仅是每次拍卖的ID
AuctionGroups {
_id : ObjectId,
name : String, // needed? do the groups have a searchable name/desc?
auctions: {
auctionId : ObjectId,
auctionDesc : String,
categoryName : String
}
}
您应该为希望作为拍卖组的一部分进行搜索的任何字段添加索引(可能是全文)。您应该在AuctionGroup记录中包含正确显示搜索结果所需的所有字段。当用户打开特定拍卖时,从数据库中加载完整的拍卖记录。可能有稍微更新的值。(如果您经常使用易趣,您会注意到当前出价和搜索结果上的其他详细信息通常会比实际挂牌延迟几秒钟。相同的交易。)您可以在更新主拍卖条目或计时器时返回到您的拍卖组。我更像是一个关系数据库的家伙,但尽管如此,我还是有两个系列: 1) 组队
- GroupID
- AuctionGroupID:指向拍卖集合中相关“分组”拍卖的ID
- AuctionID:中相关“正常”拍卖的ID列表 拍卖收藏
- 额外的搜索数据(将充当
缓存(用于所有分组拍卖):
- [CategoriesID]:相关拍卖中类别的汇总列表
- minBegin,maxBegin
- 我的,马克森德
- 等
- GroupID-对于非分组拍卖,该值为空
- IsGroup(可选,见下文)布尔标志-否则必须将AuctionID与 组集合中的AuctionGroupID,以确定此拍卖是否为“分组”拍卖
- 如果您使用可选的isGroup标志,这将告诉您哪些活动是“组”活动
- 否则,您可以通过将其与组记录中的AuctionGroupID进行匹配来判断其中哪一个是分组的