2014-03-25 65 views
0

说例如我有一个表帐户和另一个称为交易外键属性的顺序是否意味着什么?

如果账户有主键[NUM,类型]

是什么这两个语句之间的区别...

这是交易外键:[ NUM,类型] < ACCOUNT [NUM,类型]

这是交易外键:[类型,NUM] <的帐户[NUM,类型]

注意 “<” 符号意在表示这个符号enter image description here

+0

恩......如果答案有用,那么请接受相同的 –

回答

2

我当数据库索引必须从表中检索数据时,认为外键序列很重要。

如果你有表如下:

key | code | value 
a | 1 | val 1 
a | 2 | val 2 
b | 1 | val 3 
b | 2 | val 4 
c | 1 | val 5 
c | 2 | val 6 

其中主键是键和代码然后当数据库将搜索,它将搜索关键第一因此降低了结果集,那么它会检索数据到代码的第二列。如果你扭转顺序,你会得到一个非优化的解决方案。

此外,我认为数据库试图以类似的方式链接列与外键。

因此它确实很重要。

如果您确实有疑问,请尝试创建两个通过外键相互链接的虚表。如果出现错误,请尝试Google提供该错误代码。你会得到一个正确的解释。

+0

我同意,好点。这里是一些例子:http://appsdba.com/techinfo/composite_index.pdf –

+0

我明白了,那么这个假设的情况怎么样......比如说** [num,type] **是** ACCOUNT的外键[num,type] **,是否有任何理由认为** [type,num] **不会是** ACCOUNT [num,type] **上的外键? – Ogen

+0

如果允许,数据库将无法使用外键索引第二个表。这是排序你可以说,内部强迫让你让它正常工作..:P –