新聞中心

在龍崗等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作按需設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),營銷型網(wǎng)站,外貿(mào)網(wǎng)站制作,龍崗網(wǎng)站建設(shè)費(fèi)用合理。
數(shù)據(jù)模型設(shè)計(jì)
MongoDB 提供了兩種數(shù)據(jù)模型,分別是嵌入式數(shù)據(jù)模型和規(guī)范化數(shù)據(jù)模型,您可以根據(jù)需要使用其中的任何一種。
在 MongoDB 中模型設(shè)計(jì)需要注意以下幾點(diǎn):
- 要根據(jù)具體的項(xiàng)目需求來選擇合適的設(shè)計(jì)模式;
- 如果是要同時使用的數(shù)據(jù),您可以將它們合并到一個文檔中,否則可以選擇將它們分成若干個文檔;
- 可以有適當(dāng)?shù)臄?shù)據(jù)冗余,因?yàn)榕c計(jì)算時間相比,磁盤空間更便宜;
- 針對最常用的用例優(yōu)化您的模型;
- 寫入時執(zhí)行連接,而不是讀取時執(zhí)行連接;
- 在模式中執(zhí)行復(fù)雜聚合。
嵌入式數(shù)據(jù)模型
嵌入式數(shù)據(jù)模型也稱為非規(guī)范化數(shù)據(jù)模型,在該模型中您可以將所有相關(guān)的數(shù)據(jù)存儲到一個文檔中,例如我們在三個不同的文檔中分別存儲了一個員工的個人信息、聯(lián)系方式和地址等信息,您還可以將這些信息整合到一個文檔中,如下所示:
{
_id: ObjectId("601f4be6e646844cd045c8a4"),
Emp_ID: "10025AE336",
Personal_details:{
First_Name: "Radhika",
Last_Name: "Sharma",
Date_Of_Birth: "1995-09-26"
},
Contact: {
e-mail: "biancheng.net@gmail.com",
phone: "9848022338"
},
Address: {
city: "Hyderabad",
Area: "Madapur",
State: "Telangana"
}
}
規(guī)范化數(shù)據(jù)模型
在規(guī)范化數(shù)據(jù)模型中,您可以通過引用來將原始文檔與子文檔關(guān)聯(lián)起來,例如您可以將上面的文檔信息以規(guī)范化數(shù)據(jù)模型重寫為以下幾個文檔:
Employee:
{
_id: ObjectId("601f4be6e646844cd045c8a4"),
Emp_ID: "10025AE336"
}
Personal_details:
{
_id: ObjectId("601f50bae646844cd045c8a5"),
empDocID: ObjectId("601f4be6e646844cd045c8a4"),
First_Name: "Radhika",
Last_Name: "Sharma",
Date_Of_Birth: "1995-09-26"
}
Contact:
{
_id: ObjectId("601f50bae646844cd045c8a6"),
empDocID: ObjectId("601f4be6e646844cd045c8a4"),
e-mail: "biancheng.net@gmail.com",
phone: "9848022338"
}
Address:
{
_id: ObjectId("601f50bae646844cd045c8a7"),
empDocID: ObjectId("601f4be6e646844cd045c8a4"),
city: "Hyderabad",
Area: "Madapur",
State: "Telangana"
}
【示例】假設(shè)我們需要為某個博客或網(wǎng)站進(jìn)行數(shù)據(jù)庫設(shè)計(jì),網(wǎng)站的具體要求如下:
- 每個帖子都有唯一的標(biāo)題、描述和網(wǎng)址;
- 每個帖子可以有一個或多個標(biāo)簽;
- 每個帖子都有其發(fā)布者的名字和喜歡的人數(shù);
- 每個帖子都可以有零個或多個評論,評論中包括他們的名字、信息、數(shù)據(jù)、時間和喜好。
在使用關(guān)系型數(shù)據(jù)庫來實(shí)現(xiàn)上述需求時至少需要創(chuàng)建三個表,如下圖所示:
圖:關(guān)系型數(shù)據(jù)庫架構(gòu)設(shè)計(jì)
若使用 MongoDB 來實(shí)現(xiàn)上述需求,可以使用一個集合來實(shí)現(xiàn),其結(jié)構(gòu)如下:
{
_id: POST_ID,
title: TITLE_OF_POST,
description: POST_DESCRIPTION,
by: POST_BY,
url: URL_OF_POST,
tags: [TAG1, TAG2, TAG3],
likes: TOTAL_LIKES,
comments: [
{
user:'COMMENT_BY',
message: TEXT,
dateCreated: DATE_TIME,
like: LIKES
},
{
user:'COMMENT_BY',
message: TEXT,
dateCreated: DATE_TIME,
like: LIKES
}
]
}
網(wǎng)頁題目:MongoDB數(shù)據(jù)模型
本文URL:http://www.5511xx.com/article/dhhjepc.html


咨詢
建站咨詢
