MSSQL - 两个具有多个关系的表

时间:2014-01-20 08:38:06

标签: sql sql-server database

enter image description here

鉴于产品,我的目的是能够创建一个转换表,当从一个度量单位( FromUomId )转换为另一个度量单位时,将用作查找( ToUomId )。这两个ID都可以在 UoM 表中找到。

转换值将由用户提供,并将分别存储在 FromUnit ToUnit 字段中。例如,给定 Kilos 的源UoM和 Grams 的目标UoM, FromUnit 字段将包含1和 ToUnit 字段将包含1000。

然而,虽然对我有意义,但我发现这种关系很奇怪,因为转换 UoM 表之间存在两种关系。

我的问题是,拥有这种多重关系是否可以接受?

1 个答案:

答案 0 :(得分:2)

答案是这是可以接受的,这是正确的方法。

编写联接时,请记得将别名分配给UoM表:

Select *
from Conversion C
inner join UoM as UoMfrom on UoMfrom.UomId = c.FromUomId
inner join UoM as UoMto on UoMto.UomId = c.FromUomId

请注意,因为UoM表在句子中出现两次,所以必须为每次出现分配不同的别名。