在更新时维护链接数据实体完整性的最佳实践是什么?
我的场景
- 我有两个实体“客户和发票”。[客户是定义,发票是交易]。
- 在向客户开具多张发票后,客户信息需要更改,例如“他的帐单地址/位置已更改或公司名称……等”。
- 用户必须能够更新客户端信息以保持系统中数据的完整性,这是正常的。
- 在发票“交易实体”中,我不仅存储客户 ID,还存储与发票相关的所有客户信息,例如“客户姓名、地址、联系人”,这是在交易实体中存储数据的众所周知的方法。
- 如果用户创建了新发票,新的客户信息将与相同的客户 ID 一起存储在发票记录中(非常明显!)。
我的问题
- 可以为插入和更新绑定来自不同位置的数据实体“客户端”吗?[说明:如果我遵循步骤 1-4 中的方法,我必须在创建新发票的情况下绑定客户表中的客户实体,但在更新/打印发票的情况下,我必须从发票表中绑定客户实体否则数据将不一致或整数......那么我如何保持数据完整性而不在 DAL 中创建意大利面条代码来处理数据绑定的这种自定义要求??]
- 我通过了一个系统,该系统在更新“保留所有版本的历史记录”之前保存了实体数据的所有先前版本。如果我想使用相同的方法来避免自定义绑定,我该如何在数据库设计“使用 MYSQL”方面做到这一点?[解释:一些发票是用客户的 1.0 版本创建的,然后客户信息更新,它的版本变成了 1.1,新的发票是用上一个版本创建的......那么遵循这种方法是否很好?以及我应该如何设计我的实体/表来满足实体版本控制和绑定的要求?
- 请提供任何可以让我朝着正确方向发展的书籍或参考资料?
谢谢,