订单
业务流程图
设计流程图
设计流程图
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版本,升级时请注意:如果原有的订单表增加了字段,则需要在归档对应表也要增加此字段,否则会导致归档后此字段的信息丢失