当我们想要捕捉到制造商之间的互动(合并、收购等)时,是否有一种标准模式将产品与制造商联系起来?
在我们的行业中,A公司生产产品1,许多人在谈论该产品或试图在我们的数据库中查找该产品的详细性能和物理特性时,都会使用类似"A-1“的标记来提及该产品。
如果B公司购买A,我们仍然希望人们能够使用"A-1“这样的标记来查找该产品的性能数据,即使拥有的公司现在是B。同时,一个新用户可以查看记录,了解A公司制造了该产品并且是前所有者,而B公司现在是”真正的“所有者。
用两个制造商外键和一个版本列对此进行建模是否可行?当制造商关系发生变化时,版本列会增加?version列将用于允许旧的"A拥有1“行保留在表中,以便在A拥有1之前与其链接的现有记录保留在表中。

发布于 2018-07-26 09:55:44
使用具有有效日期的联接表
product_id refernjces product(id),
manufacturer_id references manufacturere(id),
start_date not null default CURRENT_DATE
end_date 您可能需要几个索引,这取决于您想要从数据库中得到哪些报告。
发布于 2018-07-26 00:02:15
我就是这样设计的。通过在产品级别为原始制造商添加ID,然后将详细信息存储在历史表中。
历史表将允许制造商ID(或其他详细信息)随时间的变化而被存储,而不需要版本号。
Product_ID Product_Name Orig_Mfgr_ID
Product_ID ProductHistory_ID Orig_Mfgr_ID Mfgr_StartDate Mfgr_EndDate CreateDate
然后,我将创建一个视图或函数,根据产品的购买日期来提取最近/当前的制造商,而不是将这些信息存储在product本身中。
https://dba.stackexchange.com/questions/213237
复制相似问题