BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / database / #5608同步于 2011/5/19
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖

MongoDB 内嵌列表?或者外置关联对象?

wks
2011/5/19镜像同步1 回复
类似分类器 定期会输入一批文档,分类器分成各个类(可能重叠)。直观的SQL做法是 create table document ( id int not null primary key auto_increment, content text); create table category ( name varchar(40) primary key); create table document_category ( id int not null primary key auto_increment, doc_id int not null, category_name varchar(40) not null); create index doc_cat_by_doc_id on document_category (doc_id); create index doc_cat_by_cat_name on document_category (category_name); 现在在用MongoDB。对象数据库。每个文档看上去像这样: { _id: ObjectId("...."), content: "Hello world!" } 分类这样设计: { _id: "sports", documents: [id1, id2, id3, id4, ...] } 看上去很简单。但是,文档在不断增加。 MongoDB的实现是:每个对象使用一块连续的空间。这样如果对象不断增大不是很有利。 如果再加上这个对象: { _id: ...., cat_name: "sports", doc_id: ObjectId("...") } 然后ensureIndex,也能做到SQL的那种效果,只是用起来可能有点不爽。Morphia没有像Hibernate那样的ManyToMany。而且,删除的时候,对象数据库不善长处理关联。级联删除做不到。 抛砖引玉一下,哪个好?有没有更好的?
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复
wangjianzhou机器人#1 · 2011/5/31
自己写一个简单的ORM,就像Hibernat就是一个成功的ORM,楼主关系搞错,关系数据库就是擅长数据关联操作,文档数据库没有这个功能,只是你数据存储方式满足对应关系而已。