0

我有以下情况:有一堆地址来自女巫客户可以选择一个当前的。

地址(ID,CLIENT_ID,...)

客户(ID,CURRENT_ADDRESS_ID,...)

一对多有明显的关系

地址[CLIENT_Id]>--->CLIENT[ID]

但也有另一个一对一。我不知道这是否正确。

客户[CURRENT_ADDRESS_ID]<--->地址[ID]

这应该由 SQL 关系完成,还是稍后在代码中完成?(示例 SQL 代码将不胜感激)

4

3 回答 3

0

客户(ID,...)

地址(ID,...)

CLIENT_ADDRESS(CLIENT_ID,ADDRESS_ID,IS_CURRENT_ADDRESS)

于 2012-08-16T22:32:23.473 回答
0

当您想要考虑创建第三个表来链接客户和地址时,就会出现这种情况。它看起来像这样:

地址 (AddressID)

客户端地址(地址 ID、客户端 ID)

客户 (ClientID)

于 2012-08-16T22:32:57.530 回答
0

如果客户端必须选择其中一个地址将其设置为当前地址,则不需要第二个关系,因此您可以执行以下操作

SELECT Client.ID ClientID, Address.ID AddressID, 
CASE WHEN Client.Current_Address_Id =  Address.ID THEN 'Current Address' ELSE '' END Current
FROM Client LEFT JOIN Address ON Client.ID = Address.Client_ID

你会得到类似的东西

ClientID | AddressID | Current
1          20          'Current Address'
1          35          
1          15          
2          18          'Current Address'
.
.
.

如果添加第二个条件

SELECT Client.ID ClientID, Address.ID AddressID, 
CASE WHEN Client.Current_Address_Id =  Address.ID THEN 'Current Address' ELSE '' END Current
FROM Client LEFT JOIN Address ON Client.ID = Address.Client_ID AND Client.Current-Address_ID = Addres.ID 

你会得到类似的东西

ClientID | AddressID | Current
1          20          'Current Address'
2          18          'Current Address'
.
.
.

希望能帮助到你...

于 2012-08-16T22:39:09.337 回答