redis - 如一简单博客数据库,NoSQL该如何设计?
巴扎黑
巴扎黑 2017-04-22 08:58:54
0
6
756

这几天看NoSQL,还是不太理解从传统的关系型数据库中的表、行、列转换到NoSQL。

比如一个最简单的博客数据库设计,有分类表,有文章表、每个分类对应N条文章。

这样的传统关系数据库设计怎么转变到Mongodb、Redis呢?

巴扎黑
巴扎黑

全部回覆(6)
PHPzhong

使用過Mongodb,我是這樣設計的,對於文章:

  • 標題
  • 發佈時間
  • ...
  • 分類
  • Tags(使用數組類型)

透過tag和分類查詢文章,可以使用聚合Map/Reduce等。

對於Redis,處理這些主要還是在自己的應用裡實現。

Ty80

部落格用文件就行了,依日期放資料夾裡資料夾用日期命名,tag也用資料夾,裡面放文章檔的softlink即可

迷茫

SQL 名稱 | MongoDB 名稱

database | database
table | collection
row | document/BSON document
column | field
index | index
table | joins
primary key | primary key


例:建立一個表格

用SQL語句

CREATE TABLE users (
    id MEDIUMINT NOT NULL
        AUTO_INCREMENT,
    user_id Varchar(30),
    age Number,
    status char(1),
    PRIMARY KEY (id)
)

用NoSQL語句

db.users.insert( {
    user_id: "abc123",
    age: 55,
    status: "A"
 } )
Ty80

你完全可以使用關係型資料庫的思想設計資料庫,例如:

category collection:

name:string 

posts collection:

category_id: object_id
title:string 

也可以嵌套子文檔, category collection下有很多的posts doc

category:

posts: []
PHPzhong

使用NoSQL資料庫,首先要拋棄關係型資料庫的想法。採用物件化的方式去處理資料結構。 每一種NoSQL資料庫都代表一種不同的物件處理的設計思想,這個問題太大了。 學NoSQL,先忘掉關係型資料庫吧。

PHPzhong

回答的人不少啊,但是我沒看到比較全面的回答

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!