首頁  >  問答  >  主體

redis - 如一简单博客数据库,NoSQL该如何设计?

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

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

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

巴扎黑巴扎黑2736 天前766

全部回覆(6)我來回復

  • PHPz

    PHPz2017-04-22 09:00:54

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

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

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

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

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-22 09:00:54

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

    回覆
    0
  • 迷茫

    迷茫2017-04-22 09:00:54

    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"
     } )
    

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-22 09:00:54

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

    category collection:

    name:string 
    

    posts collection:

    category_id: object_id
    title:string 
    

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

    category:

    posts: []
    

    回覆
    0
  • PHPz

    PHPz2017-04-22 09:00:54

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

    回覆
    0
  • PHPz

    PHPz2017-04-22 09:00:54

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

    回覆
    0
  • 取消回覆