我需要在数据库中创建一个包含以下列的表 -
table name - transaction
time, source-address, destination-address
我有一张这样的地址表 -
table name - address
address id, address, type (home/office/etc...)
我想只保留字段source-address和destination-address中的指针到表“address”中的条目。
交易也可以在同一地址之间完成 - 例如,可以从家庭住址到家庭住址或从家庭住址到工作地址完成,所有这些都是合法的。
最好的方法是什么?
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中的SRC
和DST
字段。
我希望得到一种方法描述,了解我需要做什么的最佳方式 - 比如设计建议。
答案 0 :(得分: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