我有一个问题,我期望是非常常见的,但我不确定搜索什么,因为它可以以多种不同的方式解释。

我正在设计用于管理发票,产品,价格,货币等的数据库结构。

我能够管理产品的价格和名称(预计每次现在都会改变)。

在发票上,产品按数量添加,折扣,增值税,独角兽,松鼠等,然后计算发票的总数。

现在,当在产品表中更新价格时,发票不应该改变。它需要永远保持不变。

在思考此时,对我来说,它似乎是产品列表是“类类型”对象列表,它描述了产品的样子。或者我们可以称之为“模板”或“基础”或“摘要”,具体取决于我们想到的抽象。

添加到发票中的产品是“实例”,“实现”,“儿童”,“版本的记录”或者我们所谓的任何东西。

如何在数据库中构建它?我可以将它们分成两个不同的表“AbstractProduct”和“产品”,但他们将拥有最多(可能的全部)他们的一列。在这方面,将它们保持在同一张表中似乎是合适的。但是,我需要一个额外的列来表示它是“类”或“实例”。那也很好。这也可以是它是从中创建的类的foricekey,它是从(或为类的null)。

我尝试过不同的方法,但似乎都觉得烦人的警告。

这是一种已知的模式吗?这叫什么?是否有解决此问题的最佳实践?

有帮助吗?

解决方案

是一种众所周知的模式。如果您想要在此主题上进行广泛的文献,请在“时间数据库”上搜索。

许可以下: CC-BY-SA归因
不隶属于 dba.stackexchange
scroll top