我將在一個將使用EAV結構存儲對象數據的系統上工作。模型本身將有一些預先定義的屬性(座標和日期/時間戳),即:Eloquent ORM和EAV
- X
- ý
- Ž
- 開始日期/時間
- 結束日期/時間
其餘屬性將由用戶動態創建,並添加爲屬性表中的行。這些行將被旋轉並作爲列與值表對齊(不確定這是否需要解釋,但認爲安全性比抱歉更好)。
屬性關係的對象(或實體)是一對多的。
屬性與值之間的關係是一對多關係。
我是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類(即一個用於實體組件的數據,一個用於屬性的數據,一個用於值的數據)。
謝謝。
嘿,你能解釋一下關於NO SQL解決方案嗎?因爲我也有相同的情況和想用我的數據庫使用EAV! 我會有公司,他們的功能都是使用EAV綁定的。類似的搜索標籤,類別等 – harishannam
沒有SQL?我還想了解更多信息...... –
@MikelBitson'No SQL'中,quandrei必須意味着像'MongoDB'這樣的解決方案,但是也可以使用mySQL中的JSON編碼列。 –