【有书共读】MongoDB实战第二版第四章
【有书共读】MongoDB实战第二版第四章
面向文档的数据
schema设计原则
需要考虑如下问题:
- 应用访问的模式是什么,读写比率?查询是否简单?key的复杂度?
- 数据库的功能是什么?
- 数据库的基本单位是什么?
- 如何记录生成的唯一主键?
设计电商网站的数据模型
MongoDB可以通过在文档里定义数组实现RDBMS多表关联关系
唯一的URL slug
提供一个有意义的url,有利于SEO.
如https://mysite.org/products/wheelbrow-23455
slug是唯一索引
内嵌文档
允许一个key指向一个子文档
多对多关系
如一盒商品可以被分为很多个类别,定义一个类别的tag:
categories_ids{
id1,
id2
}
包含对象id数组,,每个数组是指向文档的指针,相当于join链接。
用户和订单
通常RDBMS会有一个用户表一个订单表,用外键相连,但是MongoDB可以使用订单对象的id作为引用很方便的建立一对多的关系。可以将商品,订单快递信息等内容都封装到一个个体对象中
数据库文件
创建一个数据库后会产生一系列的文件,包含所有的集合,索引还有其他原数据
如创建garden数据库后
mongodb.lock,储存服务器进程id等
garden.ns储存命名空间
garden.0,garden.1是原数据文件,有初始大小,如果数据过大可以扩容
TTL集合
一种允许在特定时间后废弃的文档,需要创建一个特殊索引time_field设置一个时间值
文档序列化
所有的文档在发给mongoDB之前都会序列化为BSON格式,在从BSON反序列化
字符串
必须使用UTF-8编码
#MongoDB#