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

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

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

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

巴扎黑
巴扎黑

Antworte allen(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

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

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!