2011-05-20 73 views
0

當我讀到J.Gilmore Zend的書(部分型號):Zend_Db。建立數據庫表時,我是否需要手動設置主鍵和外鍵?

class Game extends Zend_Db_Table_Abstract 
{ 
protected $_primary='id'; //line 4 
} 

[..]Line 4 identifies the table's primary key.By default the framework will 
presume the primary key is an automatically incrementing integer named id,so 
this line is not necessary [..] 

我有一個問題:

  • 我是否需要手動設置主鍵和外鍵,同時建立一個表 (例。在phpmyadmin中有類似「PRIMARY KEY(id),FOREIGN KEY(post)REFERENCES users(id) ON DELETE CASCADE」)?
  • 或者我可以使用$ _primary,$ _ dependentTable,$ _ referenceMap等來引用Zend代碼來處理表關係和字段自然?

感謝

盧卡

回答

2

兩者。儘管你可以用ORM來處理關係,但數據庫在低層次上確保這些關係得到了尊重。總是讓數據庫儘可能地完成它的工作,它是爲了處理關係和防止數據損壞而建立的。如果你的ORM有錯誤怎麼辦?

作爲一個有點相關的例子,假設你有一個在數據庫中聲明爲int的字段,你有責任作爲一個開發者確保你在查詢中使用int,但是數據庫在較低級別強制執行該規則,數據萬一你沒有。

+0

對於「兩者」+1。如果可能的話,同時使用安全性和完整性。 – Emerald214 2011-05-20 17:27:02

1

當您創建表,您應該定義主鍵/唯一鍵和任何其他指標正常。

在99%的案例中完成此操作後,Zend_Db將能夠理解發生了什麼,因爲它能夠讀取表元數據並從中獲取主鍵。