nosql购物车,数据库购物车
DDD领域驱动设计-DDD概览
# DDD概览
目前创新互联已为成百上千家的企业提供了网站建设、域名、虚拟主机、网站改版维护、企业网站设计、金塔网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
## 启迪
领域可以理解为业务,领域专家就是对业务很了解的人。
限界上下文也就是微服务的边界,也可以理解为微服务,一个限界上下文=一个微服务。
个人理解领域驱动设计就是微服务驱动设计,从战略上先进行微服务的划分,从战术上针对某个微服务进行领域模型的设计也就是业务模型的设计。
领域模型包括:
- 实体
- 值对象
- 聚合
- 领域服务
- 领域事件
- 资源库
- 应用服务
## 什么是领域驱动设计?
理解领域驱动设计是什么之前,我们先来理解下什么是领域?
领域可以理解为业务,领域专家就是对业务很了解的人。
领域驱动设计的核心就是和最了解业务的人也就是领域专家一起通过领域建模的方式去设计我们的软件程序。
- 那么领域如何驱动设计?或者说业务如何驱动设计?
传统开发过程我们都是基于面向数据开发,拿到产品原型脑海里想着都是应该创建哪些表和哪些字段才能满足需求。
而领域驱动设计开发过程是让我们基于面向业务开发、面向领域模型开发。
领域模型的核心是通过承载和保存领域知识,并通过模型与代码的映射将这些领域知识保存在程序代码中,
在传统开发中,当业务被转换为一张张数据表时,丢失最多的就是领域知识(领域知识也就是我们在模型中定义的一些业务逻辑行为)。
面向领域模型开发的优点:
- 存储方便,统一使用JSON进行存储。
例:
订单领域包含基础信息、商品信息、金额信息、支付信息等包含订单全生命周期的子域,
对于传统面向数据的开发模式我们需要创建N张表进行存储订单的信息,但是面向领域开发时我们
可以通过利用nosql数据库(mongo、es等)进行保存整个订单域的信息,提高查询、更新效率,简化代码
- 复用性高,引用某个领域模型,就可以拥有该领域模型的所有行为。
例:
基于微服务架构下,某个电商应用需要一个判断某个订单是否是在线支付订单的逻辑时,
对于传统的开发模式我们需要调用订单中心的服务查询订单信息,然后写一个判断是否在线支付订单的方法。
如果有多个应用都需要这个逻辑时,每个应该都需要重复写相同的方法。
但面向领域开发时,只需要引用订单中心的jar包,然后统一调用订单领域内的方法即可。
这样就实现了业务的高内聚
## DDD可以做什么
DDD主要分为两个部分,战略设计与战术设计
- 战略设计
- 围绕微服务拆分
- 战术设计
- 微服务内部设计
## DDD怎么做
- 战略设计
- 和领域专家一起通过(过往经验、事物联系、事件风暴等)划分【限界上下文】
限界上下文也就是微服务的边界,也可以理解为微服务。
一个限界上下文=一个微服务
- 战术设计
- 开发人员通过(领域模型)保存【领域知识】
领域知识也就是事物(角色)、行为(规则)和关系
## DDD领域模型
领域模型包含什么?
- 实体
具有唯一标识,包含着业务知识的【充血模型】对象,用于对唯一性事物进行建模。
例:
```
public class Order {
private long orderId;
private OrderAmount amount;
private List item;
}
```
- 值对象
生成后即不可变对象,通常作为实体的属性,用于描述领域中的事物的某种特征。
例:
```
public class OrderItem {
private long orderId;
private String productCode;
private String productName;
}
```
- 聚合
将实体和值对象在一致性边界之内组成聚合,使用聚合划分微服务(限界上下文)内部的边界
- 领域服务
分担实体的功能,承接部分业务逻辑,做一些实体不变处理的业务流程。不是必须的
主要承接内部领域服务调用和外部微服务调用,及一些聚合业务逻辑处理。
例:
```
@Service
public class ShoppingcartDomainService {
private final ShoppingcartRepository shoppingcartRepository;
private final ProductFacade productFacade;
private final UserFacade userFacade;
private final PromotionFacade promotionFacade;
// 1.查询购物车信息
ShoppingcartDO entity = shoppingcartRepository.loadShoppingcart(userId);
// 2.调用【用户中心】服务查询用户信息
User user = userFacade.getUser(userId);
// 3.调用【商品中心】服务查询商品信息
Product product = productFacade.getProduct(productCode);
// 4.调用【活动中心】服务查询活动信息
Promotion promotion = promotionFacade.getPromotionByProductCode(productCode);
// 5.创建购物车实体
Shoppingcart shoppingcart = new Shoppingcart(entity.getId, user, product, promotion);
// 6.购物车按活动分组
shoppingcart.groupby4Promotion();
}
```
- 领域事件
表示领域中发生的事情,通过领域事件可以实现本地微服务(限界上下文)内的信息同步,同时也可以实现对外部系统的解耦
- 资源库
保存聚合的地方,将聚合实例存放在资源库(Repository)中,之后再通过该资源库来获取相同的实例。
- 应用服务
应用服务负责流程编排,它将要实现的功能委托给一个或多个领域服务来实现,
本身只负责处理业务用例的执行顺序以及结果的拼装同时也可以在应用服务做些权限验证等工作。
![](images/application-service.png)
发现公司里的大数据开发挣得很多,想转行,
转行这个词汇,一直是职场上此起彼伏的一个热门话题,相信很多朋友都想过或已经经历过转行。工作可谓是我们生存乃至生活的主要收入来源,谁都希望拥有一份高薪又稳定的工作,以此来改善自己的生活和实现自己的大大小小的梦想!但又担心转行后的工作待遇达不到自己的预期,顾虑重重……
不少想进入大数据分析行业的零基础学员经常会有这样一些疑问:大数据分析零基础应该怎么学习?自己适合学习大数据分析吗?人生,就是在不断地做选择,然后在这个选择过程中成长,让自己从一棵小树苗变成参天大树。就是我们每个对大数据充满幻想终于下定决心行动的学员的选择,我们给了自己4个月的时间,想要在大数据分析这个领域汲取养分,让自己壮大成长。
【明确方向】
通过国家的战略规划,看到BAT的大牛们都在大数据行业布局,新闻媒体追捧这大数据分析行业的项目和热点,我想如果我还没有能力独立判断的时候,跟着国家政策和互联网大佬们的步调走,这应该是错不了的。
【付诸行动】
明确了方向之后,我就整装待发,刚开始是在网络上购买了很多的视频教程,也买了很多书籍,但是最大的问题就在于,我不知道怎么入手,没关系,有信心有耐心肯定能战胜困难,我坚持了一个月,学习的节奏越来越乱,陆陆续续出现了很多的问题,没人指导,请教了几个业内的朋友,但对方工作繁忙,问了几次之后就不好意思了,自学陷入了死循环。
意识到我学习效率的低下,以及无人指导的问题想想未来的康庄大道,咬咬牙告诉自己,一定好好好学,不然就浪费太多时间最后还会是一无所获。最后找到组织(AAA教育)一起学习进步!
大数据分析零基础学习路线,有信心能坚持学习的话,那就当下开始行动吧!
一、大数据技术基础
1、linux操作基础
linux系统简介与安装
linux常用命令–文件操作
linux常用命令–用户管理与权限
linux常用命令–系统管理
linux常用命令–免密登陆配置与网络管理
linux上常用软件安装
linux本地yum源配置及yum软件安装
linux防火墙配置
linux高级文本处理命令cut、sed、awk
linux定时任务crontab
2、shell编程
shell编程–基本语法
shell编程–流程控制
shell编程–函数
shell编程–综合案例–自动化部署脚本
3、内存数据库redis
redis和nosql简介
redis客户端连接
redis的string类型数据结构操作及应用-对象缓存
redis的list类型数据结构操作及应用案例-任务调度队列
redis的hash及set数据结构操作及应用案例-购物车
redis的sortedset数据结构操作及应用案例-排行榜
4、布式协调服务zookeeper
zookeeper简介及应用场景
zookeeper集群安装部署
zookeeper的数据节点与命令行操作
zookeeper的java客户端基本操作及事件监听
zookeeper核心机制及数据节点
zookeeper应用案例–分布式共享资源锁
zookeeper应用案例–服务器上下线动态感知
zookeeper的数据一致性原理及leader选举机制
5、java高级特性增强
Java多线程基本知识
Java同步关键词详解
java并发包线程池及在开源软件中的应用
Java并发包消息队里及在开源软件中的应用
Java JMS技术
Java动态代理反射
6、轻量级RPC框架开发
RPC原理学习
Nio原理学习
Netty常用API学习
轻量级RPC框架需求分析及原理分析
轻量级RPC框架开发
二、离线计算系统
1、hadoop快速入门
hadoop背景介绍
分布式系统概述
离线数据分析流程介绍
集群搭建
集群使用初步
2、HDFS增强
HDFS的概念和特性
HDFS的shell(命令行客户端)操作
HDFS的工作机制
NAMENODE的工作机制
java的api操作
案例1:开发shell采集脚本
3、MAPREDUCE详解
自定义hadoop的RPC框架
Mapreduce编程规范及示例编写
Mapreduce程序运行模式及debug方法
mapreduce程序运行模式的内在机理
mapreduce运算框架的主体工作流程
自定义对象的序列化方法
MapReduce编程案例
4、MAPREDUCE增强
Mapreduce排序
自定义partitioner
Mapreduce的combiner
mapreduce工作机制详解
5、MAPREDUCE实战
maptask并行度机制-文件切片
maptask并行度设置
倒排索引
共同好友
6、federation介绍和hive使用
Hadoop的HA机制
HA集群的安装部署
集群运维测试之Datanode动态上下线
集群运维测试之Namenode状态切换管理
集群运维测试之数据块的balance
HA下HDFS-API变化
hive简介
hive架构
hive安装部署
hvie初使用
7、hive增强和flume介绍
HQL-DDL基本语法
HQL-DML基本语法
HIVE的join
HIVE 参数配置
HIVE 自定义函数和Transform
HIVE 执行HQL的实例分析
HIVE最佳实践注意点
HIVE优化策略
HIVE实战案例
Flume介绍
Flume的安装部署
案例:采集目录到HDFS
案例:采集文件到HDFS
三、流式计算
1、Storm从入门到精通
Storm是什么
Storm架构分析
Storm架构分析
Storm编程模型、Tuple源码、并发度分析
Storm WordCount案例及常用Api分析
Storm集群部署实战
Storm+Kafka+Redis业务指标计算
Storm源码下载编译
Strom集群启动及源码分析
Storm任务提交及源码分析
Storm数据发送流程分析
Storm通信机制分析
Storm消息容错机制及源码分析
Storm多stream项目分析
编写自己的流式任务执行框架
2、Storm上下游及架构集成
消息队列是什么
Kakfa核心组件
Kafka集群部署实战及常用命令
Kafka配置文件梳理
Kakfa JavaApi学习
Kafka文件存储机制分析
Redis基础及单机环境部署
Redis数据结构及典型案例
Flume快速入门
Flume+Kafka+Storm+Redis整合
四、内存计算体系Spark
1、scala编程
scala编程介绍
scala相关软件安装
scala基础语法
scala方法和函数
scala函数式编程特点
scala数组和集合
scala编程练习(单机版WordCount)
scala面向对象
scala模式匹配
actor编程介绍
option和偏函数
实战:actor的并发WordCount
柯里化
隐式转换
2、AKKA与RPC
Akka并发编程框架
实战:RPC编程实战
3、Spark快速入门
spark介绍
spark环境搭建
RDD简介
RDD的转换和动作
实战:RDD综合练习
RDD高级算子
自定义Partitioner
实战:网站访问次数
广播变量
实战:根据IP计算归属地
自定义排序
利用JDBC RDD实现数据导入导出
WorldCount执行流程详解
4、RDD详解
RDD依赖关系
RDD缓存机制
RDD的Checkpoint检查点机制
Spark任务执行过程分析
RDD的Stage划分
5、Spark-Sql应用
Spark-SQL
Spark结合Hive
DataFrame
实战:Spark-SQL和DataFrame案例
6、SparkStreaming应用实战
Spark-Streaming简介
Spark-Streaming编程
实战:StageFulWordCount
Flume结合Spark Streaming
Kafka结合Spark Streaming
窗口函数
ELK技术栈介绍
ElasticSearch安装和使用
Storm架构分析
Storm编程模型、Tuple源码、并发度分析
Storm WordCount案例及常用Api分析
7、Spark核心源码解析
Spark源码编译
Spark远程debug
Spark任务提交行流程源码分析
Spark通信流程源码分析
SparkContext创建过程源码分析
DriverActor和ClientActor通信过程源码分析
Worker启动Executor过程源码分析
Executor向DriverActor注册过程源码分析
Executor向Driver注册过程源码分析
DAGScheduler和TaskScheduler源码分析
Shuffle过程源码分析
Task执行过程源码分析
五、机器学习算法
1、python及numpy库
机器学习简介
机器学习与python
python语言–快速入门
python语言–数据类型详解
python语言–流程控制语句
python语言–函数使用
python语言–模块和包
phthon语言–面向对象
python机器学习算法库–numpy
机器学习必备数学知识–概率论
2、常用算法实现
knn分类算法–算法原理
knn分类算法–代码实现
knn分类算法–手写字识别案例
lineage回归分类算法–算法原理
lineage回归分类算法–算法实现及demo
朴素贝叶斯分类算法–算法原理
朴素贝叶斯分类算法–算法实现
朴素贝叶斯分类算法–垃圾邮件识别应用案例
kmeans聚类算法–算法原理
kmeans聚类算法–算法实现
kmeans聚类算法–地理位置聚类应用
决策树分类算法–算法原理
决策树分类算法–算法实现
时下的大数据分析时代与人工智能热潮,相信有许多对大数据分析师非常感兴趣、跃跃欲试想着转行的朋友,但面向整个社会,最不缺的其实就是人才,对于是否转行大数据分析行列,对于能否勇敢一次跳出自己的舒适圈,不少人还是踌躇满志啊!毕竟好多决定,一旦做出了就很难再回头了。不过如果你已经转行到大数据分析领域,就不要后悔,做到如何脱颖而出才是关键。因此本文给出一些建议,针对想要转行大数据分析行列且是零基础转行的小伙伴们,希望对你们有所裨益,也希望你们将来学有所成,不后悔,更不灰心!
相关推荐:
《转行大数据分析师后悔了》、《ui设计培训四个月骗局大爆料》、《零基础学大数据分析现实吗》、《大数据分析十八般工具》
请问使用vs2005和sql制作购物车的步骤或教程..c#和vb 都可
最简单的就是用Session保存,比如用户点击商品1放入购物车时:
Session["want"] = Convert.ToString(Session["want"]) + "商品1,";
用户从购物车删除商品1时:
Session["want"] = Convert.ToString(Session["want"]).Relpace("商品1,","");
查看购物车时,
string[] allWant = Convert.ToString(Session["want"]).Split(',');
//接着分别处理各个商品ID,得到商品信息啊什么的。
上面这个思路简单吧,用数据库也可以,不过数据库里容易出现一堆垃圾数据,而且效率不高。
Session也不会占用太多内存。
如何选择简单易用的数据库
1.数据量太大,比如上亿,就用oracle,优点上亿数据对Oracle来说轻飘飘的,也不用太多优化配置,缺点安装比较麻烦,上手比较慢。
2.数据量较大,比如千万级,用postgresql,它号称对标Oracle,处理千万级数据还是可以的,也是易学易用。
3.数据量一般,比如百万级,用mysql,这个级别的数据量mysql处理还是比较快的。
4.数据量较小,比如十万以下,sqlite、access都可以。
上面是基于单表操作的数据量,你看着选。
简单易用的数据库哪个比较好?这个要具体看你的用途,如果数据量比较少(10万左右),追求简约简单,免费开源的sqlite就行,如果数据量比较多,考虑到高并发、分布式,可以使用专业的mysql、postgresql,下面我分别简单介绍一下,感兴趣的朋友可以尝试一下:
小巧灵活sqlite
这是基于c语言开发的一个轻量级关系型数据库,短小精悍、免费开源,个人使用无需繁琐的配置,只需一个简单的运行库便可直接使用,针对各种编程语言都提供了丰富的API接口, java、 python、c#等都可轻松操作,如果你存储数据量不多,只是本地简单的操作(读多写少),可以使用一下这个数据库,占用内存非常少,轻便灵活,当然,在高并发、数据量大的情况下就不合适了:
专业强大mysql
这是目前应该广泛使用的一个关系型数据库,免费开源跨平台,在信息系统开发方面一直占据着主力位置,如果你从事于web开发或者网站后台建设,那么这个数据库一定非常熟悉,支持高并发、分布式,存储数据量相对于sqlite来说,更多也更安全,索引、触发器、存储过程等功能非常不错,支持数据导入导出、恢复备份,只要你熟悉一下基本使用过程,很快就能掌握和运用:
免费开源postgresql
这是加州大学计算机系开发的一个对象-关系型数据库(自由软件),免费、开源、跨平台,支持流计算、全文检索、图式搜索、并行计算、存储过程、空间数据、K-V类型,相比较mysql来说,在复杂查询、高并发下更稳定、性能更优越,可扩展性、可维护性非常不错,但也有劣势,例如新旧版本不分离存储,没有Coverage index scan等,总体使用效果来说还不错:
当然,除了以上3个数据库,还有许多其他数据库,像mssql、oracle等也都非常不错,对于存储和处理数据来说绰绰有余,只要你熟悉一下基本使用过程,很快就能入门的,网上也有相关教程和资料,介绍的非常详细,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。
最符合初学者理解和入门的是Access,因为它和Excel本来就是一个套件,相互转化容易,复制粘贴即可,非常好理解库、表、字段、键的概念。
如果数据量不大,强烈推荐试试Filemaker,脚本化编程,自由定制输入界面、工作流程,非常便捷高效。
最近杀出来的airtable,更是简单高效,界面美观,操作与电子表格相当,发展势头也非常迅猛。
二者侧重点有所不同,用户可根据需要选择
作为一个软件开发人员,长期需要和数据库打交道,个人更加青睐于MySQL。虽然可能基于你的Excel原因,有些人会建议你使用Access数据库,但是基于我个人的 意见,我并不建议你那样做。采用MySql的具体理由如下:
1.MySQL具有普遍性,在国内的环境中,绝大多数的互联网企业采用的是MySQL。有了广大的用户基础后,针对于各种问题网上也能更好地找到解决方案。
2.MySQL相对于Oracle而言,更加轻量化,针对于从Excel量级的数据,没必要使用Oracle。同时MySQL是完全免费的,不用担心版权及费用问题,无论对个人还是对预算有限的企业而言都是很好的选择。
3.MySQL高度兼容标准SQL,这对于以后迁移到其他数据库而言,也能很大程度地降低学习成本。
希望我的回答能够对你有所帮助!!![耶][耶][耶]
Excel办公确实便利,可以做一些简单的数据分析,但涉及大量复杂的数据运算,就会遇到和题主一样的问题,运算速度慢,如果主机性能不是很好,还有可能面临电脑死机,数据丢失等问题。
遇到这种情况,我们该如何解决呢?数据库的重要性显而易见!
现在, 我将用3分钟的时间,与您探讨该选择何种数据库,以及选择它的理由,是否有更优的解决方案呢?
MySQL数据库,90%的企业都会选择它
数据库选得好,企业的数据安全,资产安全,也就得到了保障。那么该如何选择数据库呢?这个跟你的业务量和业务服务行业,密不可分。
如果你只是上班打卡,用SQL server就可以了;
如果你要储存会话信息,用户配置信息,购物车数据,建议使用NoSQL数据库;
不过90%的企业或个人,首选数据库都是MySQL数据库。
为什么这么说?
因为,它集 低成本、高可用、可靠性强、易用性强、体积小、速度快开放源码 等特性于一身,所以在金融、财务、网站、 数据处理 等应用领域,它占据着独一无二的优势。
这也是几乎所有企业都选择它,来存储数据的原因。
加之MySQL数据库,支持多种存储引擎,支持大型数据库,可以处理成千上万条记录,还提供用于管理、检查、优化数据库操作的工具。
因而,MySQL尤其受个人,以及中小企业的推崇。
虽然MySQL数据库简单易用,但我还是不会部署该怎么办?
别担心,现在市面上已经出现了,一种自带数据库的新型办公软件。
比如说,云表企业应用平台,一款兼容excel功能,但功能更为强大的办公软件,它就内嵌了MySQL数据库。 (文末有免费获取方式)
云表内嵌的MySQL数据库,有何优点?
1. 性能更加优化,更加兼容系统。因为云表的研发人员,时刻更新维护MySQL数据库。
2. 省去自己手动部署的麻烦。但如果你熟悉部署数据库,想把数据库改成Oracle或SQL server等数据库,也可以设置。(不过,我建议IT小白还是 “拿来即用” 就好)
3. 快速实时计算。数据分析实时交互,完全满足管理决策中的临时性分析,多变的业务需求,以及频繁的结果刷新。
4. 通过自带的内存计算引擎,无需事先建立CUBE,IT部门将告别报表延时报表分析,亿级数据秒级响应。
内嵌的MySQL数据库是否可靠
云表不仅是一款办公软件,同时还是一款开发工具。
通过它,你将解决以下问题:
复杂的数据运算,精确到行列的权限管控,以及工作流,海量用户同时在线办公,数据透视,制作像销售单,洽谈合同等表单报表,一份制作,即可重复录用......
你还可以通过它,与电子称、地磅等进行对接,与用友金蝶等三方系统集成,生成条形码,扫码出入库,生成移动端APP...... 基本上业务所需的功能,你都可以放心交给它做。
它最大的亮点就是,你可以 用使用excel的手法,用它来开发业务应用。
而且,可视化的 拖拉拽 之后,开发出来的ERP、WMS、OA、进销存等业务应用,还秉承了MySQL数据库增删改查的功能特性。
没错,用云表开发出来的业务应用,是允许二次开发的,而且功能可以随时增删改查,轻松满足大集团精细化的数据控制需求。
不过,大家最关心的应该是数据安全问题吧。
数据存放在云表内嵌的MySQL数据库,是安全不丢失的,它提供了多种数据存储的方式,本地部署,云端部署,混合部署,任君挑选!
正因如此,像 恒逸石化、许继电气、航天科工委、中铁、中冶、云南小松 等大型集团,才鼓励内部员工去学习云表。
篇幅所限,只说到这里,说太多你也不会看。
免费 的软获取方式在下方:
数据库的用处可大着呢,不仅可以实现数据共享,减少数据冗余度,还能实现对数据的集中控制,保持数据的一致性和可维护性。选取简单易用的数据库,你有什么好的建议呢,留言让我们看到噢!
题主强调了简单易用。所以推荐最简单三个。
1.Access。
2.Excel。
3.飞书文档、腾讯文档、石墨文档等的表格。
如果要做分析,数据量才比较大,建议Access,还是专业的更好一些。网上教程也很多,比较容易学。而且建议用早一点的版本,比如2003或者2007,Access这些年微软一直想从office里去掉,奈何用的人还是很多,所以不敢去掉,但是采取了一种比较恶心的方法让用户放弃,就是每发布一个新版本,就去掉一些好用的功能,所以说Access是越早的功能越强。
还一个推荐就是Sql Server Express版本,是SQL Server的免费版本,不要钱,基本功能都有,要比sqllite等强大的多
这要结合你个人实际情况来定,有计算机基础,懂一点数据库的话那么市场上的那些软件都可以用,常用有oracle,sqlserver,mysql等,要上手快还是sqlserver比较快,界面操作也比较直观;如果一点基础都没有,但是又要分析数据的话可以用微软自带的一个access,这个上手比较快。决定用哪一种之后还是要买点教材看,简单的sql查询要会,熟练之后也能提高工作效率。
个人使用数据库的话,只存数据不做分析,SQLite就足够了。
文档数据库和键值数据库有什么区别
键值数据库适用于那些频繁读写,拥有简单数据模型的应用。键值数据库中存储的值可以是简单的标量值,如整数或布尔值,也可以是结构化数据类型,比如列表和JSON结构。
键值数据库通常具有简单的查询功能,允许通过键来查找一个值。一般键值数据库都支持搜索功能,这提供了更高的灵活性。开发人员可以选择使用一些技巧,比如用枚举键来实现范围查询,但这些数据库通常缺乏对于文档、列族、图形数据库的查询功能。
文档数据库提供嵌入式文档,这对于非规范化非常有用。文档数据库将经常查询的数据存储在同一个文档中,而不是存储在不同的表中。文档型数据库按照灵活性的标准设计。如果一个应用程序需要存储不同的属性以及大量的数据,那么文档数据库将会是一个很好的选择。
分享标题:nosql购物车,数据库购物车
标题URL:http://scyanting.com/article/dscoieo.html