马上注册,结交更多数据大咖,获取更多知识干货,轻松玩转大数据
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 168主编 于 2020-3-4 18:03 编辑
传统的关系型数据库你如何设计?以一个电商客户、订单、订购、地址模型来对比下关系型数据库和非关系型数据库? ER图(1:1/1:N/N:N,主外键等常见) 用户对应多个订单多个地址 每个订单对应每个商品、价格、地址 每个商品对应产品
nosql你如何设计可以尝试使用BSON。 BSON()是一种类json的一种二进制形式的存储格式,简称Binary JSON,它和JSON一样,支持内嵌的文档对象和数组对象 用BSon画出构建的数据模型 [AppleScript] 纯文本查看 复制代码 {
"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"}}],
}
]
}
}
两者对比,问题和难点- 为什么上述的情况可以用聚合模型来处理?
- 高并发的操作是不太建议有关联查询的,互联网公司用冗余数据来避免关联查询
- 分布式事务是支持不了太多的并发的
- 想想关系模型数据库你如何查?如果按照我们新设计的BSon查询会怎么样?
聚合模型- KV键值
- bson
- 列族
- 顾名思义,是按列存储数据的。最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,
对针对某一列或者某几列的查询有非常大的IO优势。
NoSQL数据库的四大分类KV键值:典型介绍
- 新浪:BerkeleyDB+redis
- 美团:redis+tair
- 阿里、百度:memcache+redis
文档型数据库(bson格式比较多):典型介绍
列存储数据库
图关系数据库
- 它不是放图形的,放的是关系比如:朋友圈社交网络、广告推荐系统
- 社交网络,推荐系统等。专注于构建关系图谱
- Neo4J, InfoGrid
四者对比 |