维护mysql数据库中的关系和历史

时间:2016-08-01 13:09:44

标签: mysql database

我正在设计一个mysql数据库,并且遇到了将来会增长的这些关系。

假设客户与两个不同的表格政策选项相关联。

每个客户与政策有多种关系,同样也有选择权。由于我每次与客户建立关系时都会保留表格的详细信息和历史记录,因此我将需要另外保留2个表格。要计算客户欠的价格,我必须通过customer_policies然后customer_options并计算总价。随着关系的增加,表的数量也会增加。

  • 如果客户与政策有关系,则会有2个表格 - customer_policies和customer_policies_details。
  • 如果客户与选项有更多关系,它将增加3个 - customer_options和customer_option_history。
  • 同样明智的是,如果还有一个,它会继续增加2个表 关系和问题的增长和发展。

我尝试了两种不同的选项,我在下面提到过。我想知道解决这个问题的最佳方法是什么,以便在关系增长时可以维护表。

选项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并跟踪所有更改。

应该有更好的方法来解决这个问题。

0 个答案:

没有答案