0

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

> MaterialGroup
>  - ID 
>  - MaterialGroup_Name 
>  - MaterialGroup_Price

但是有一个问题:MaterialGroup 属性可能会因公司而异。为此,我创建了表格:

MaterialGroup_Company
 - ID
 - MaterialGroup_Default_ID
 - CompanyID
 - MaterialGroup_Company_Name
 - MaterialGroup_Company_Price

例子:

材料组默认值

名称:第 1 组

价格:40.00

A公司: 物料组名称:Group 1

材料组价格:40.00

B公司:

材料组:第 1 组(扩展)

材料组价格:100.00

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

我真正的问题是:

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

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

我怎样才能实现这种更新?请记住,我的真实表格有更多的列。

4

1 回答 1

1

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

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

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

于 2018-05-11T00:33:08.190 回答