我正在设计一个mysql数据库,并且遇到了将来会增长的这些关系。
假设客户与两个不同的表格政策和选项相关联。
每个客户与政策有多种关系,同样也有选择权。由于我每次与客户建立关系时都会保留表格的详细信息和历史记录,因此我将需要另外保留2个表格。要计算客户欠的价格,我必须通过customer_policies然后customer_options并计算总价。随着关系的增加,表的数量也会增加。
我尝试了两种不同的选项,我在下面提到过。我想知道解决这个问题的最佳方法是什么,以便在关系增长时可以维护表。
选项1:
customer_policies:
CustomerPolicyId CustomerId PolicyId Status
1 1 1 Active
2 1 2 Active
customer_policies_details:
CustomerPolicyDetailsId CustomerPolicyId Price
1 1 10
2 2 20
customer_options:
CustomerOptionId CustomerId OptionId Status
1 1 1 Active
2 1 2 Active
customer_options_details:
CustomerOptionDetailsId CustomerOptionId Price
1 1 10
2 2 20
选项2:
创建单个表customer_selections并使用Type和Id字段,如下所示:
customer_selections:
CustomerSelctionId CustomerId Type Id Status
1 1 Policy 1 Active
2 1 Policy 2 Active
3 1 Option 1 Active
4 1 Option 2 Active
customer_selection_details:
DetailsId CustomerSelctionId Price
1 1 10
2 2 20
3 3 10
4 4 20
要创建此历史记录,我只需创建customer_selections_details并跟踪所有更改。
应该有更好的方法来解决这个问题。