C# SQL - 使用与父表相同的值更新子表



我有一个表材料组,其中存储有关默认材料组的信息。 例:

> MaterialGroup
>  - ID 
>  - MaterialGroup_Name 
>  - MaterialGroup_Price

但是,存在一个问题:材料组属性可以按公司更改。为此,我创建了表格:

MaterialGroup_Company
- ID
- MaterialGroup_Default_ID
- CompanyID
- MaterialGroup_Company_Name
- MaterialGroup_Company_Price

例:

材料组默认值

名称:组 1

价格: 40.00

公司A:材料组名称:组1

材料组价格: 40.00

B公司:

材料组:组 1(扩展(

材料组价格: 100.00

在我的代码后端,我有类MaterialGroup。

我真正的问题如下:

我有一个表单,用户可以在其中更改默认的材料组。我已经有了主表的更新语句,但我正在努力寻找更新MaterialGroup_Company的方法。我想做的是只更新与主行具有完全相同值的子行值。

这意味着在我的示例中,如果我将材料组名称更改为组 1 - 默认值,公司 A 应该更新,但公司 B 需要保持不变。

如何实现这种更新?请记住,我的实际表有更多的列。

作为一般规则,应尽量避免在数据库中存储重复的信息。如果您必须在两个不同的位置存储相同的信息,这通常意味着您的方法可以改进。此外,它可能会导致诸如两行不同步等问题。

当公司决定覆盖默认的 MaterialGroup 时,仅在MaterialGroup_Company中创建一行怎么样? 逻辑是: - 如果MaterialGroup_Company中有一行,请使用该行 - 否则,请使用默认中的那个。

如果使用左联接并处理代码中的其余部分,则可以在单个 SQL 查询中执行此操作。如果MaterialGroup_Company中没有关联的行,则列应为 null,您可以查看MaterialGroup_Default列。

相关内容

  • 没有找到相关文章

最新更新