订单

订单提交

业务流程图

设计流程图

订单支付

设计流程图

订单状态

uml状态图

订单相关表

E-R图

单据归档

归档所用技术

归档注意事项

  • 归档方式目前只支持 range 和 hash 两种
  • 归档的定义文件app/app_id/partition.xml
<partitions>

    <partition table="archive_return_product"> <!-- 分区的表名 -->
        <method>range</method> <!-- 对应mysql分区的方法,目前系统只实现range和hash两种方式的简单应用 -->
        <expr>add_time</expr> <!-- 分区表中的分区字段 -->
    </partition>

    <partition table="archive_order_items"> <!-- 分区的表名 -->
        <method>hash</method> <!-- 对应mysql分区的方法,目前系统只实现range和hash两种方式的简单应用 -->
        <expr>order_id</expr> <!-- 分区表中的分区字段 -->
        <nums>4</nums> <!-- hash分区的数目(只有hash分区拥有) -->
    </partition>

</partitions>

  • 归档表原样复制被归档表的dbschema文件,去除了后台搜索的一些配置
  • 归档表的命名一般是依照原表在前面增加`archive_`,如b2c/dbschema/orders.php对应的归档表文件为b2c/dbschema/archive_orders.php
  • 归档的dbschema描述文件中原来的定义主键的pkey字段需要改为virtual_pkey,定义后此字段不会更新数据库的对应字段为主键(原因时分区的字段如果是主键则必须要包含这个字段,具体参考mysql分区文档)
  • 针对range分区是根据季度进行分区,通过crontab定期维护新建的分区,每个季度会创建下个季度分区。hash分区不做维护,hash分区只能通过修改partition.xml文件内对应的nums修改
  • **b2c依赖于archive,并且归档会删除原来的单据表的对应条目,所以一旦安装归档表则不要删除,否则导致数据丢失
  • 如果安装有带有归档的ecstore版本,升级时请注意:如果原有的订单表增加了字段,则需要在归档对应表也要增加此字段,否则会导致归档后此字段的信息丢失