用MongoDB建立炉石传说卡牌数据库

The_Grand_Tournament_Banner
Standard

MongoDB 简介

MongoDB 是一个面向文档的数据库管理系统。与传统的SQL Server、MySQL等关系型数据库(Relational Database Management System)有所不同,它是非关系型的数据库,即 NoSQL。

NoSQL 的设计思维与传统的数据库设计还是有一点差别的。在传统的数据库设计思维中,在设计阶段就需要对表的字段名称、字段类型进行规定(DDL),如果插入的数据不符合要求,则数据库不会接受这条数据以保持完整性。

INSERT INTO TABLE members VALUES('小明', 'Hello MongoDB!')
INERT INTO TABLE members VALUES('John', 20, 'john@example.com')

-- 在关系型数据库中,上述两条插入语句不可能同时成功

而在 MongoDB 中,以文档表示每条记录,而集合则是一组文档。如果说 MongoDB 中的文档类似于关系型数据库中的行,那么集合就如同于表。

{"name": "小明", "greeting": "Hello MongoDB!"}
{"name": "John", "age": 20, "email": "john@example.com"}

集合是无模式的,意味着一个集合里面的文档可以是各式各样的。MongoDB 中的文档格式类似于JSON,每个文档包含着一些键值对。注意到,不仅是值的类型不同(字符串和整数),它们的键也是完全不一样的。在集合里面可以放置任何文档会带来很多好处,例如某些种类很多的字段就不必专门建表去存储了,减少了设计表时的成本。但随之而来的问题是:“还有必要使用多个集合吗?”问得好!为何要用多个集合呢?下面是一些理由:

Continue reading