2009-12-10 56 views
0

我有兩個表'元素'和'列表' 列表有一個主鍵和一個列表名稱。 元素具有與列表中的單個條目有關的數據。在SQLite中有用的外鍵?

元素需要持有其中列出元素是一列。

我讀過有關SQL的外鍵約束,這個數字是要鏈接表的最佳方式,但我使用SQLite它沒有按不強制執行關鍵約束。

如果沒有強制執行,是否需要聲明外鍵約束?

回答

2

它總是好做,即使你的數據庫不強制約束(舊版本的MySQL,例如)。這樣做的理由是有一天,有人會嘗試閱讀你的模式(甚至可能是你自己)。

如果您不能使用新版本,仍然可以聲明約束並使用觸發器強制執行。無論哪種情況,我都不會忽略符號。這太有幫助了。

2

如今sqlite執行外鍵,下載新版本。

+0

最新版本是什麼?我必須使用sqlite3,它支持外鍵嗎? – CodeFusionMobile 2009-12-10 19:07:51

+0

在這裏閱讀,sqlite 3.6.19強制外鍵不使用觸發器:http://www.sqlite.org/foreignkeys.html – tuinstoel 2009-12-10 19:10:14

0

外鍵是一個字段(或字段) 指向的 另一個表的主鍵。 外鍵的目的是確保參照 數據的完整性。換句話說, 只允許在數據庫中出現 的值。

它只執行「業務規則」。如果你從商業角度需要這個,那麼是的,這是必需的。

索引不會受到影響。

您仍然可以根據需要創建索引。

看一看Foreign Key

Wikipedia Foreign key