[英]Kohana 3.3 table structure
我在Kohana 3.3中有一個簡單的crud應用程序,有幾種不同類型的數據或模型。 假設這些模型是:
我為每個模型都有一個表格,但這些表格之間沒有任何關系。 我一直試圖定義與ORM的關系,但我仍然感到困惑。 舉個例子:
我有很多地方。 每個位置都有很多用戶。
我知道我可以用以下內容來定義:
class Model_Location extends ORM {
/**
* A location has many users
*
* @var array Relationships
*/
protected $_has_many = array(
'users' => array('model' => 'user'),
);
}
據我了解,我可以通過引用用戶表中行的父位置ID來連接這兩者。 但是,如果每個用戶都屬於許多位置怎么辦? 我應該將序列化數據存儲在外鍵中嗎? 我應該創建一個“查找表”嗎? 如果是這樣,它應該怎么樣?
例如,我如何查詢數據庫中的某個位置以及附加到該位置的所有用戶? ORM甚至是用於此類事情的正確技術嗎?
您正在尋找through
參數,看看文檔 。
您需要一個額外的表來存儲兩個模型的ID
table users_locations
,fields: user_id
和location_id
(當然都是索引的)
在你的模型中:
protected $_has_many = array(
'users' => array(
'model' => 'user'
'through' => 'users_locations',
),
);
反之亦然用戶模型:
protected $_has_many = array(
'locations' => array(
'model' => 'location'
'through' => 'users_locations',
),
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.