NOSQL数据库学习,NoSQL总结(三)

2022-02-15 15:43:48 浏览数 (1)

NoSQL数据模型简介

案例设计以一个电商客户,订单,订购,地址模型来对比下关系型数据库和非关系型数据库

传统的关系型数据库你如何设计?

ER图(1:1/1:N/N:N,主外键等常见)

用户对应多个订单多个地址

每个订单对应每个商品、价格、地址

每个商品对应产品

闲聊:用户画像分析,女人心是琢磨不透的,看了男装,剃须刀,根据她的信息找到她男朋友的生日就

在最近,后台画像已经分析完毕,准备推送广告了,结果她买了一个零食就走了~

90后的程序员真的在一点点的改变生活中的点点滴滴,假设你有幸进入了大厂,你会发现周围的小伙伴

都在努力,真的就是那种可以在海底捞吃着吃着饭,突然就掏出笔记本写代码的那种,别人都以为他们

是疯子,只有他们自己内心才懂。这才是对技术的痴迷。

NoSQL你如何设计

可以尝试使用BSON。

BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON,它和JSON一样,支持内嵌的文档

对象和数组对象

用BSon画出构建的数据模型

代码语言:javascript复制
{
"customer":{
"id":1000,
"name":"Z3",
"billingAddress":[{"city":"beijing"}],
"orders":[
{
"id":17,
"customerId":1000,
"orderItems":[{"productId":27,"price":77.5,"productName":"thinking in
java"}],
"shippingAddress":[{"city":"beijing"}]
"orderPayment":[{"ccinfo":"111-222-
333","txnid":"asdfadcd334","billingAddress":{"city":"beijing"}}],
}
]
}
}

想想关系模型数据库你如何查?如果按照我们新设计的BSon,是不是查询起来很简单。

高并发的操作是不太建议有关联查询的,互联网公司用冗余数据来避免关联查询

分布式事务是支持不了太多的并发的

0 人点赞