首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    State模式的经典应用场景:订单处理(c#实现)场景描述遇到问题解决问题走起

    State模式在对象内部状态发生变化的时候,改变自身的行为,这通常是通过切换内部状态对象实现的,对象将自身在各个状态的行为推给了状态对象,从而解开了行为与对象的依赖。 场景描述 在经典的订单处理场景中,订单其不同状态的时候变现了不同的行为,具体内容如下: 假如订单是一个新创建的订单,那么它可以被寄送,也可以被取消; 假如订单已经被寄送,那么它不可以被再次寄送,也不可以被取消; 假如订单已经被取消,那么它不可以被寄送,也不可以被取消。 上述内容中详细解释了订单状态和对应行为的关系。 遇到问题 对逻辑的

    04

    分库分表之第三篇

    在了解Sharding-JDBC的执行原理前,需要了解以下概念 : 逻辑表 水平拆分的数据表的总称。例 :订单数据表根据主键尾数拆分为1-张表,分别是t_order_0、t_order_1到t_order_9,他们的逻辑表名为t_order。 真实表 在分片的数据库中真实存在的物理表。即上个实例中的t_order_0到t_order_9。 数据节点 数据分片的最小物理单元。由数据源名称和数据表组成,例如 :ds_0.t_order_0。 绑定表 指分片规则一致的主表和子表。例如 :t_order表和t_order_item表,均按照order_id分片,绑定表之间的分区键完全相同,则此两张表互为绑定表关系。绑定表之间的多表关联查询不会出现笛卡尔积关联,关联查询效率将大大提升。举例说明,如果SQL为 :

    02

    基于Hadoop生态圈的数据仓库实践 —— 进阶技术

    五、快照 前面实验说明了处理维度的扩展。本节讨论两种事实表的扩展技术。 有些用户,尤其是管理者,经常要看某个特定时间点的数据。也就是说,他们需要数据的快照。周期快照和累积快照是两种常用的事实表扩展技术。 周期快照是在一个给定的时间对事实表进行一段时期的总计。例如,一个月销售订单周期快照汇总每个月底时总的销售订单金额。 累积快照用于跟踪事实表的变化。例如,数据仓库可能需要累积(存储)销售订单从下订单的时间开始,到订单中的商品被打包、运输和到达的各阶段的时间点数据来跟踪订单生命周期的进展情况。用户可能要取得在某个给定时间点,销售订单处理状态的累积快照。 下面说明周期快照和累积快照的细节问题。 1. 周期快照 下面以销售订单的月底汇总为例说明如何实现一个周期快照。 首先需要添加一个新的事实表。下图中的模式显示了一个名为month_end_sales_order_fact的新事实表。

    02

    基于Hadoop生态圈的数据仓库实践 —— 进阶技术(五)

    五、快照         前面实验说明了处理维度的扩展。本节讨论两种事实表的扩展技术。         有些用户,尤其是管理者,经常要看某个特定时间点的数据。也就是说,他们需要数据的快照。周期快照和累积快照是两种常用的事实表扩展技术。         周期快照是在一个给定的时间对事实表进行一段时期的总计。例如,一个月销售订单周期快照汇总每个月底时总的销售订单金额。         累积快照用于跟踪事实表的变化。例如,数据仓库可能需要累积(存储)销售订单从下订单的时间开始,到订单中的商品被打包、运输和到达的各阶段的时间点数据来跟踪订单生命周期的进展情况。用户可能要取得在某个给定时间点,销售订单处理状态的累积快照。         下面说明周期快照和累积快照的细节问题。 1. 周期快照         下面以销售订单的月底汇总为例说明如何实现一个周期快照。         首先需要添加一个新的事实表。下图中的模式显示了一个名为month_end_sales_order_fact的新事实表。

    02

    1 SpringBoot 使用sharding jdbc进行分库分表

    分库分表在数据量大的系统中比较常用,解决方案有Cobar,TDDL等,这次主要是拿当当网开源的Sharding-JDBC来做个小例子。 它的github地址为:https://github.com/dangdangdotcom/sharding-jdbc 简介: Sharding-JDBC直接封装JDBC API,可以理解为增强版的JDBC驱动,旧代码迁移成本几乎为零: 可适用于任何基于java的ORM框架,如:JPA, Hibernate, Mybatis, Spring JDBC Template或直接使用JDBC。 可基于任何第三方的数据库连接池,如:DBCP, C3P0, BoneCP, Druid等。 理论上可支持任意实现JDBC规范的数据库。虽然目前仅支持MySQL,但已有支持Oracle,SQLServer,DB2等数据库的计划。 Sharding-JDBC定位为轻量级java框架,使用客户端直连数据库,以jar包形式提供服务,未使用中间层,无需额外部署,无其他依赖,DBA也无需改变原有的运维方式。SQL解析使用Druid解析器,是目前性能最高的SQL解析器。 具体的介绍可以上它的文档那里看看,简单归纳起来就是,它是一个增强版的JDBC,对使用者透明,逻辑代码什么的都不用动,它来完成分库分表的操作;然后它还支持分布式事务(不完善)。看起来很不错的样子。 下面用个小例子来看一下分库分表的使用。使用的是SpringBoot,JPA(hibernate),druid连接池。

    01
    领券