我正在开发一个引用的应用程序。首先,您要进行成本分解(或计算),然后根据该结果将项目添加到报价中。问题是我有很多产品,所以产品的每个类别都有自己的成本分解形式,需要填写不同的参数。如果我只有一张表用于成本分解,那么它将是巨大的(很多表中的字段)。我觉得这不是正确的做法。所以我想出了下面的图表:
这个解决方案是否可行,或者每个成本分解表必须有“N”(如果我有N表)不同的FK?你有更好的解决方案吗?
如果我的链接表“Quotation_QtnDetail”是必要的,我还有另一个问题吗?
答案 0 :(得分:0)
通过使CalculationType
列指示记录所在的表以及通用引用ID列(包含其中的ID),可以在其中一个表中存储对特定值的引用。相关记录)。例如,如果您存储的CalcId
为123且CalculationType
为2,则会指向Calc2
表中ID为123的记录。
这样做的缺点是您将失去使用FK约束验证数据的能力,并且它还会使计算表的连接更复杂一些。
关于Quotation_QtnDetail
表,除非QtnDetail
记录可以链接到多个Quotation
记录,否则不需要这个额外的链接表。相反,只需将QtnId
列添加到QtnDetail
表即可直接链接。同样,如果某个项目只链接到一个计算记录,您也可以删除Calc_QtnItm
表。