数据库设计 - 使用And / Or定义协议条款之间的关系

时间:2013-05-01 21:05:45

标签: database-design normalization database-schema

我将在未来几个月内设计一个数据库,我认为这将是一个重大挑战。

如何使用和/或条件跟踪协议条款与产品之间的关系。

所以我们真正感兴趣的是客户对各种产品的协议,以及协议是并发还是脱节。

要记住的一些事情

1)单个客户可以签订多份协议,涵盖各种产品。

2)单一协议看起来像这样(尽管它们会变得更加复杂):

5 of Product-A AND 10 of Product-B OR 50 of Product-C OR $500 of Product-D

因此,对我来说,挑战在于(希望有些)规范化的结构中代表这些变化和复杂的条件协议。这将是一个生产数据库,数据完整性至关重要。

数据源位于此DB的上游,现在协议存储为每个产品/协议组合[AgreementID] - [Product] - [Terms]的单行。但是,如果我能找到更好的方法,它可能会迁移到新数据库。

有没有人遇到过这类问题,或者有任何建议?

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

你可以像这样设计你的架构:

客户(CustomerID,名称) Customer_Agreements(CustomerID,AgreementID,DateSigned) 协议(AgreementID,AgreementValidStart,AgreementValidEnd,Body)

使用协议表的时间点架构设计来查看协议是最新的,还是过去有效的:https://www.simple-talk.com/sql/database-administration/database-design-a-point-in-time-architecture/