2013-11-04 117 views
1

地基模型繼承4

我有一個數據庫設計(剪斷到相關部分),如下所示:

records 
    entities 
    people 
其中表之間不存在適當的關係,而是 records延伸

entities通過共享id延長people

我有我的Eloquent模型同樣定義,以便Record延長Entity延長Person

目標

RecordEntity是抽象的,我希望在層次結構層次簡單地使用Person等車型。

問題

如何 '鏈接' RecordEntityPerson使這所有的工作完美?我不認爲人際關係是合適的。我以爲它涉及到這樣的事情:

protected __construct() { 
    parent::__construct(); 
} 

回答

1

我建議你還是創建個人,實體,並錄製模型,並將其與「屬於關聯」關係聯繫在一起。 (將entity_id列添加到「People」表中,將「record_id」添加到「Entities」表中)。

如果您只使用Person模型,則可以添加一個「已保存」模型觀察者,以在創建Person時創建實體並記錄條目,並將它們與全局ID綁定在一起。

http://laravel.com/docs/eloquent#model-observers

如果你這樣做了,你可以通過做一些像訪問人的實體和記錄字段:

$人 - >實體 - >字段名

$人─>記錄 - >字段名稱

所有這些都說了,這似乎太複雜了。我只有一張表格給人,並將所有人的數據存儲在那裏。海事組織。

+0

你說得對。這個過程並不像我想的那樣自然。我想我會扁平桌子的結構。 :) 謝謝! – Donnie