2010-03-05 142 views
0

是否有可能創建一個具有其列從另一個表中的值的一個指數?數據庫索引是否可以跨表?我對Postgres的

例子:

model Pet 
    primary_key id 
    foreign_key Species 
end 
model Species 
    primary_key id 
    int genus 
end 

假設有很多種品種,用較少的類型的屬的。我想在Genus的Pets表上創建一個索引。可以做到嗎?

如果是的話,我會格外感激,如果你能在如何做到這一點在Rails的遷移指向正確的方向我。

+0

我不知道的Postgres,但我不相信這是可能的。您可以通過使用該種FK絕對會讓一個索引,但不會幫助你真正屬列應該是一個FK到屬表。 – 2010-03-05 22:56:16

回答

2

號在任何關係數據庫技術,「指數」是指表中的一個索引。您可以改爲將二者結合起來是這樣的:

 
ANIMAL_CLASS 
+ name 
+ id 
+ LEVEL 
+ parent_id 

其中level是邏輯上的枚舉{種,屬,...}

+1

不完全。 Oracle支持位圖連接索引 - 你在哪裏上的子表索引父表的屬性。它旨在消除星型轉換查詢中針對星型/雪花模式的IO。因此,甲骨文可能,在這種情況下,指數Species.Genus對寵物表,每個寵物最多有一個屬。 – 2010-03-05 23:26:03

相關問題