现在我正在考虑这样做:
委员会:
const BoardSchema = new Schema({
title: {
type: String,required: true,},admins: [
{
type: ObjectId,ref: 'User',}
],members: [
{
type: ObjectId,{
timestamps: true,});
列表:
const listSchema = new mongoose.Schema({
name: {
type: String,required: true
},order: {
type: Number,boardId: {
type: ObjectId,ref: 'Board',});
卡:
const cardSchema = new Schema({
text: {
type: String,members: {
type: ObjectId,listId: {
type: ObjectId,});
我是mongoDB / noSQL和数据库菜鸟的新手,构建数据库似乎不是一门非常严格的科学,因为每个人的做法似乎都不一样。从我所看到的经验来看,规则是将尽可能多的数据保存在一个集合中,这与传统数据库基本相反,但并非总是如此?因此,我应该将所有内容保存在Board集合中吗?
继续进行这个项目,我想尝试复制一个人在实际场景中的工作,以尽可能多地学习。我一直在谷歌搜索以尝试找到真正的trello应用程序的架构结构,但我找不到它。我所知道的是,他们确实使用mongoDB,并且它们有一个单独的Cards Collection,因为使用他们处理的数据量无法正常工作。因此,我假设他们还有一个单独的清单(和委员会)集合。
所以我的问题是这些模式是否有效?并使用boardId获取所有数据(当用户单击一个面板时)并将其合并到卡片列表中的最佳方法是什么?