2009-08-29 63 views
1

我有一個表中的複合PK字符串(整數id,varchar(2)lang)sqlalchemy創建一個外鍵?

我想創建一個FK到其他表中的PK的一半。這意味着我有可能在匹配FK的字符串表(翻譯)中有很多行。我只需要存儲該ID,並具有由數據庫維護的參照完整性。

這可能嗎?如果是這樣,怎麼樣?

回答

3

這是從wiki

在引用表 的列必須是在所引用的表中的主鍵或其它 候選鍵。引用列的一行中的值必須出現在引用表中的單個行中。

比方說,你有這樣的:

id | var    
1 | 10    
1 | 11   
2 | 10 

外鍵必須引用引用表中一行。這就是爲什麼它通常引用主鍵。

在你的情況下,你需要創建另一個Table1(id)你存儲id並使列唯一/主鍵。當前表中的id列不是唯一的 - 你不能在你的情況下使用它...所以你創建一個Table1(id - 主鍵),並使當前表中的id成爲表1的外鍵 。現在您可以在Table1中創建外鍵給id,並且當前表中的主鍵是可以的。

+0

謝謝你,這個解釋很有道理。我會去做。 – Eloff 2009-08-29 15:07:00