电影网站中的分类数据库设计问题,是不是该用一对许多的设计?
 发布于 9 年前  作者 varjay  7424 次预览  最后一次回复是 9 年前  来自 问答 

Mongodb的数据库

当前的分类是一对多: 分类{ 分类名称:string, 分类的电影:[{objectId} , {objectId} , {objectId} , {objectId} , {objectId} , …] //电影达到几万部部时是不是还可行? } 电影详情{ 电影名称:string, 导演:string, 演员:string, … }

当电影数量达到了10w部,单个分类下有1w部电影,这样的数据库还够吗?是否需要设计成一对许多?这样的写法对吗?

分类{ 分类名称: string, 详细分类:{objectId} }

分类详细{ 电影详情:{objectId} } 电影详情{ 电影名称:string, 导演:string, 演员:string, … }

7 回复
varjay

求回答!求告诉我正确的方法

jizhuofeng

mongodb单文档大小限制为16M,所以就看你单个分类的电影信息最大能有多大!

varjay

@jizhuofeng 16M能保存多少个objectId?有点不懂

jizhuofeng

objectid大小是12个字节,自己算下1M最多能存多少个objectid, 再加上你其他数据。。。估算一下能存个百八十万

jizhuofeng

具体如何设计还要根据应用场景! 在电影详情里面加一个分类ID不更好?

IssicLzx

为什么不把分类ID 或者直接把分类名称存在电影详情里面呢

Yu1989

有一个比较粗糙的准则是: 几个到十几个用 subdocument, 几十个到几百个用 ObjectId array, 再多的话把 [一] 的 ObjectId 存到 [多] 的文档里 当然了, 凡事无绝对, 要视具体情况而定