鍍金池/ 問(wèn)答/數(shù)據(jù)庫(kù)/ mongodb 數(shù)據(jù)結(jié)構(gòu)的一些疑問(wèn) 大佬請(qǐng)進(jìn)!

mongodb 數(shù)據(jù)結(jié)構(gòu)的一些疑問(wèn) 大佬請(qǐng)進(jìn)!

初次接觸nosql
在表結(jié)構(gòu)上有些疑問(wèn)
比如設(shè)計(jì)一個(gè)游戲的用戶(hù)表
用戶(hù)的背包應(yīng)該是包含在用戶(hù)表中還是單獨(dú)建表?


// 用戶(hù)表 user
{
    _id: '',
    name: '',
    email: '',
    ....
    backpack: [
        {
            // 背包1
        },
        {
            // 背包2
        }
    ]
}
// 還是
// 用戶(hù)表 user
{
    _id: '',
    name: '',
    email: '',
    ...
}

// 用戶(hù)背包表
{
    _id: '',
    user_id: '',
    ...
}

求解!感謝!

回答
編輯回答
近義詞

可以嵌套在user表里:
{

'_id':ObjectId("52ffc33cd85242f436000001"),
'name':'Jackey',
backpack: {
    'backpack_color': 'white'
}

}
類(lèi)似這樣,如果數(shù)量越來(lái)越多的話(huà),可以考慮索引:
就是單獨(dú)建表,然后在引用背包表的id放到 user表里即可

2017年12月5日 18:43
編輯回答
拼未來(lái)

這個(gè)問(wèn)題應(yīng)該這樣考慮的:
你的背包的個(gè)數(shù)和屬性是一定的,是單獨(dú)的個(gè)體。其他的地方也是可以使用的,不一定只有用戶(hù)使用: 這就要單獨(dú)創(chuàng)建一個(gè)背包的表和用戶(hù)沒(méi)有關(guān)系的

然后你用戶(hù)也是單獨(dú)的個(gè)體,也要單獨(dú)創(chuàng)建一個(gè)用戶(hù)表

然后你用戶(hù)和背包是多對(duì)多的關(guān)系,這時(shí)候只要在創(chuàng)建一個(gè)用戶(hù)背包關(guān)聯(lián)的表的就可以了

這樣的話(huà),就不用頻繁的更新用戶(hù)和背包的表了,只需要關(guān)注這個(gè)關(guān)聯(lián)的表進(jìn)行增刪改就可以了

2017年11月4日 08:07
編輯回答
入她眼

這是一個(gè)簡(jiǎn)單的數(shù)據(jù)問(wèn)題吧,涉及到了數(shù)據(jù)庫(kù)的涉及。
個(gè)人建議是分開(kāi)建立,通過(guò)外鍵約束關(guān)聯(lián)。

2018年4月27日 22:28