Ecstore开发之订单模块

订单提交
业务流程图
ecstore%e5%bc%80%e5%8f%91%e4%b9%8b%e8%ae%a2%e5%8d%95%e6%a8%a1%e5%9d%971 ###### 设计流程图 ecstore%e5%bc%80%e5%8f%91%e4%b9%8b%e8%ae%a2%e5%8d%95%e6%a8%a1%e5%9d%972 ##### 订单支付 ###### 设计流程图 ecstore%e5%bc%80%e5%8f%91%e4%b9%8b%e8%ae%a2%e5%8d%95%e6%a8%a1%e5%9d%973 ##### 订单状态 ###### uml状态图 ecstore%e5%bc%80%e5%8f%91%e4%b9%8b%e8%ae%a2%e5%8d%95%e6%a8%a1%e5%9d%974 ##### 订单相关表 ###### E-R图 ecstore%e5%bc%80%e5%8f%91%e4%b9%8b%e8%ae%a2%e5%8d%95%e6%a8%a1%e5%9d%975 ##### 单据归档 ###### 归档所用技术 mysql的分区功能(partition) ###### 归档注意事项 1.归档方式目前只支持 range 和 hash 两种

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

评论

评论正在提交中...请稍后
评论提交成功...