首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新关系数据库中的数据,而不影响已经存在的关系

更新关系数据库中的数据,而不影响已经存在的关系
EN

Stack Overflow用户
提问于 2014-11-13 09:03:00
回答 1查看 66关注 0票数 1

数据库系统如何在包含部分历史的关系数据中进行更改?例如,在合同管理系统中,我有一份维护合同,为公司维护一些产品。这些产品将与维护合同(在数据库内)连接。现在假设我在这个合同中维护了这些产品超过2年,突然之间产品属性发生了变化,那么我需要更改有关该产品的信息。但是如果我这样做的话,由于与合同的关系,信息会告诉我,我在它更改的属性中维护了产品,时间超过了2年,这不是真的!

现在假设我有一个简单的契约和产品关系(M:M关系,因此需要Contracts_Products连接表)和另一个产品属性(M:1关系)。由于我没有更改任何关于合同的内容,也没有对Productattribute进行任何更改,那么有什么可能的解决方案可以使过去的关系保持不变,同时只在接下来的时间更改Productattribute?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-19 20:41:00

正如我理解您的需求一样,您需要将随时间变化的产品特性(例如供应商、操作温度范围、单位成本)与不变的特性(例如描述、颜色、重量)分开。

调用保存不变属性ProductFixedAttributes的表和持有可变属性ProductVariableAttributes的表。然后,当前Products表的一行与ProductVariableAttributes为1:1,多到1为ProductFixedAttributes,您可以删除Productattributes表。

当产品的属性发生变化时,向Products中添加一个新行,该行指向ProductVariableAttributes中的新行和ProductFixedAttributes中的现有行。在未来与新Contracts的关联中使用此新行;不要更改Contracts_Products中的现有行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26904894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档