【发布时间】:2013-03-13 15:42:36
【问题描述】:
我需要在数据库中创建一个表,其中包括 - 以下列 -
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 表中的 987654326@ 和 DST 字段。
如果能获得关于什么是完成我需要做的事情的最佳方式的方法描述,我将不胜感激 - 比如设计建议。
【问题讨论】:
-
你知道主键和外键是干什么用的吗?
-
地址表中的类型字段是否表明它是源还是目标?
-
是的 - 确定我知道主键和外键的用途,并且我有一个基于地址表中外键的关系。问题是我如何从同一个表中获得 2 个外键?
-
No - 地址表中的类型字段是地址类型 - home/work/etc...有可能是同一个客户从家到工作地址之间进行的交易。
-
@Nik - 请以易于理解的形式发布示例数据和预期结果。
标签: sql database database-design create-table