数据库状态图、范式与最佳实践
1. 订单状态图定义
为了定义订单状态图,我们需要 OrderStatusType➥StateDiagram
实体的以下实例(这次省略键,为清晰起见包含名称):
| fromOrderStatusTypeId | Name | toOrderStatusTypeId | Name |
|---------------------|-----------|-------------------|----------|
| 1 | Pending | 2 | Verified |
| 2 | Verified | 3 | Shipping |
| 2 | Verified | 4 | Bill Sent |
| 3 | Shipping | 5 | Fulfilled |
| 4 | Bill Sent | 6 | Paid |
| 5 | Fulfilled | 7 | Closed |
| 6 | Paid | 7 | Closed |
通过这种方式,我们可以了解当前所处的特定状态、之前的状态以及接下来可能进入的状态。该状态图还允许我们以数据形式定义业务规则的流程,而非硬编码一系列固定值。在实际情况中,订单状态可能会经历多个值,并且在任何给定时间可能有多个状态。我们必须记录业务规则,明确在特定情况下流程的具体运作方式。实际上,异常处理通常需要花费最多的时间,一般高达 80% 的编码时间用于处理规则的异常情况。
数据仓库技术提示
数据仓库技术减少了在 OLTP 类型系统中存储大多数历史信息的需求。数据仓库会在给