我們都知道m(xù)ongodb是一種麵向文檔的數(shù)據(jù)庫(kù),但是它的靈活性並不意味著你不需要對(duì)其進(jìn)行結(jié)構(gòu)設(shè)計(jì),在代碼實(shí)施之前進(jìn)行結(jié)構(gòu)設(shè)計(jì)是十分必要的。
但是這樣問(wèn)題就來(lái)了,目前我們用的幾乎所有的數(shù)據(jù)庫(kù)設(shè)計(jì)工具都無(wú)法表現(xiàn)出mongodb這種麵向文檔的數(shù)據(jù)結(jié)構(gòu),那麼我們?cè)谧鲈O(shè)計(jì)的時(shí)候怎麼樣把我們的結(jié)構(gòu)清晰的展現(xiàn)給別人呢,我可不想用ps一個(gè)一個(gè)去畫框圖。
認(rèn)證高級(jí)PHP講師
其實(shí)官網(wǎng)的這篇設(shè)計(jì)哲學(xué)還是很不錯(cuò)的(http://www.mongodb.org/display/DOCS/S...)
MongoDB與傳統(tǒng)SQL schema設(shè)計(jì)上最大的差別就是關(guān)於模型關(guān)係用什麼方法表示比較好(在MongoDB裡即可以用Link,又可以用Embedded)
簡(jiǎn)單總結(jié)下:
我還是習(xí)慣吧mongodb當(dāng)普通db看待,把collection看成表,每個(gè)collection裡的資料結(jié)構(gòu)保持一致。
不知道這樣是否合理,至少這樣讓我思路比較清晰。
NoSQL有獨(dú)特的設(shè)計(jì)哲學(xué),建議不要受RDB思維影響。
另外推薦一篇文章看看:
MongoDB記錄映射Schema極度自由的Java Entity