【发布时间】:2013-12-28 13:28:25
【问题描述】:
我正在使用 MeteorJS 创建一个应用程序,该应用程序允许用户创建项目(例如,文本、图像)并在画布上以空间方式协作组织这些项目。可以创建多个画布。将来,项目可能会在(我不确定)多个画布之间重复使用或复制。我以前从未设计过协作(甚至是数据库驱动)应用程序。
我找不到创建嵌套 MeteorJS 集合的可能性,并且我不确定使用多个集合与在集合中使用对象数组的(不利)优势(例如考虑可伸缩性、速度),所以我想知道什么是好的设计模式:
答:
Collection Canvases {
Canvas {
Array Items;
}
Canvas {
Array Items;
}
}
乙:
Collection Items {
Item {
_id
}
Item {
_id
}
}
Collection Canvases {
Canvas {
Array ItemIDs;
}
Canvas {
Array ItemIDs;
}
}
或者也许是不同的东西?
【问题讨论】:
-
我会使用两个集合,一个用于 Canvas,一个用于 Items。我会将父画布 ID 存储在 Items 集合中,这样您就可以轻松地找到特定画布中的所有项目,并将项目重新设置为另一个画布。画布{_id:"xxx"}项目{_id:"xxx",canvasId:"xxx"}
标签: meteor collaborative