2013-11-04 37 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