0

我需要在数据库中创建一个表,其中包括 - 以下列 -

table name - transaction  
time, source-address, destination-address

我有一个这样的地址表 -

table name - address
address id, address, type (home/office/etc...)

我只想保留一个从源地址和目标地址字段指向“地址”表中条目的指针。

交易也可以在同一个地址之间进行 - 例如,可以从家庭地址到家庭地址或从家庭地址到工作地址,并且所有这些都是合法的。

最好的方法是什么?

SAMPLE DATA -  
ADDRESS  
ID    ADDR       TYPE  
1     x-street   home  
2     y-street   work  

TRANSACTION  
TIME    SRC      DST     
08:00      1     1  
08:15      2     1  
....

我想将TRANSACTION表连接到ADDRESS表,但我不确定是否可以使用外键来完成,因为这里我有相同的键 - 来自表 ADDRESS 的 ID,它连接到表 TRANSACTION 中的SRCDST字段。

我很高兴获得关于什么是做我需要做的事情的最佳方式的方法描述——比如设计建议。

4

1 回答 1

0

你的桌子似乎很好。

以下查询将允许您使用地址获取交易:

SELECT t.time, src.address "Source Address", dst.address "Destination Address"
from Transaction t
JOIN Address src ON t.src=src.id
JOIN Address dst ON t.dst=dst.id
SORT BY t.time
于 2013-03-24T00:42:03.400 回答