鍍金池/ 問答/數(shù)據(jù)庫/ mongodb 一對(duì)多如何更好設(shè)計(jì)

mongodb 一對(duì)多如何更好設(shè)計(jì)

擬設(shè)計(jì)的業(yè)務(wù)結(jié)構(gòu)如下:

var mySchema = new Schema({
  projectname:  String,
  author: String,
  body:   String,
  task: {
    taskname: String,
    user: String,
    picture: {
    url1,
    url2,
    url3,
    ...
    },
  }
});

用文字?jǐn)⑹鰳I(yè)務(wù)結(jié)構(gòu)就是,每個(gè)project包含n個(gè)task,每個(gè)task下又包含n個(gè)圖片。
日常操作是
1.新建project => 新建task =>上傳n個(gè)圖。
2.對(duì)project task等進(jìn)行update操作。

請(qǐng)問該我這樣的數(shù)據(jù)庫設(shè)計(jì)合理嗎。是否有更優(yōu)的辦法。使用的是express開發(fā)。

回答
編輯回答
涼汐

完全可以!某些業(yè)務(wù)場(chǎng)景特別適合這種嵌套的子集合設(shè)計(jì)。要用到數(shù)據(jù)project數(shù)據(jù)的時(shí)候 ,需要一并用上task。 這種只需要查詢一張表,效率很高。 而且mongo對(duì)子集合的支持也比較好。

2017年10月8日 03:56