电影网站中的分类数据库设计问题,是不是该用一对许多的设计?
发布于 4 年前 作者 varjay 4839 次浏览 来自 问答

Mongodb的数据库

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

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

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

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

7 回复

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

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

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

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

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

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

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

回到顶部