我将在一个系统上工作,该系统将使用 EAV 结构来存储对象数据。模型本身将具有一些预定义的属性(坐标和日期/时间戳),即:
- X
- 是
- Z
- 开始日期/时间
- 结束日期/时间
其余属性将由用户动态创建,并作为行添加到属性表中。这些行将被旋转并用作与值表对齐的列(不确定这是否需要解释,但认为比抱歉更安全)。
对象(或实体)与属性的关系是一对多的。
属性与值的关系是一对多的。
我是 Eloquent/Laravel 的新手,但我已经阅读了关系文档,发现有一对多关系的功能,但是,我不清楚如何引用 EAV 中的所有数据(似乎更适合 RDBMS )。会是这样吗(请记住这是一个粗略的例子)?
class UserObject extends Eloquent {
public function object_data()
{
return $this->hasMany(attributes_data);
}
public function attributes_data()
{
return $this->hasMany('Values');
}
}
基本上,我的问题是:
在检索与 EAV 相关的所有数据时,是否有一种可接受的(或适当的)方法来设计/编写模型?如果是这样,您能否指出一些有关 Eloquent/EAV 方法的文档或教程?
一些事后的想法:
我的想法是,我需要为 EAV 的每个组件创建 3 个类(即,一个用于实体组件数据,一个用于属性数据,一个用于值数据)。
谢谢你。