一、以一个电商客户、订单、订购、地址模型来对比下关系型数据库和非关系型数据库?
1.传统关系型数据库:ER图(1:1/1:N/N:N,主外键等常见)
-
用户对应多个订单多个地址
-
每个订单对应每个商品、价格、地址
-
每个商品对应产品
2.非关系型数据库:使用BSON
(1)什么是BSON
BSON()是一种类json的一种二进制形式的存储格式,简称Binary JSON,它和JSON一样,支持内嵌的文档对象和数组对象
用BSon画出构建的数据模型
{
"customer":{
"id":1136,
"name":"Z3",
"billingAddress":[{"city":"beijing"}],
"orders":[
{
"id":17,
"customerId":1136,
"orderItems":[{"productId":27,"price":77.5,"productName":"thinking in java"}],
"shippingAddress":[{"city":"beijing"}]
"orderPayment":[{"ccinfo":"111-222-333","txnid":"asdfadcd334","billingAddress":{"city":"beijing"}}],
}
]
}
}
二、聚合模型
1.KV键值
2.bson
3.列族:顾名思义,是按列存储数据的。最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,
对针对某一列或者某几列的查询有非常大的IO优势。
4.图形