2011-08-26 38 views
0

我正在研究一個新的應用程序,我需要使用EAV 表格樣式來創建幾個不同的表格。主要是我發佈的 是我的用戶表。我需要使用EAV,以便自定義用戶定義的 字段可以輕鬆添加/顯示。EAV in my cakephp

到目前爲止,我有一個簡單的表結構,我做了一個ERD爲方便查看。

我正在考慮使用的方法與此類似post on key value pairs。 一個簡單的beforeSave()將字段與表單名稱匹配。

只有一個問題,這個是我看到的,因爲我沒有與值存儲 字段名(從eav_attributes attribute_code),如何 我會去與attribute_code配套了表單字段 和最終是通過表單域傳入的值?

+1

我不太確定我是否會遇到問題。你的意思是因爲你沒有將屬性鍵標籤和值存儲在同一張表中,你怎麼去匹配它們?最簡單的解決方案是爲eav_attributes創建一個不同的模型,然後對它進行查找('列表'),然後迭代它以匹配屬性ID和屬性標籤。 – JohnP

+0

你是對的,那正是我所要求的。這篇文章的主要原因是找到像這樣的最佳做法。我最初的想法是使用類似於博客中使用的內容,並將其與您的建議進行了擴充。 – rottmanj

回答

0

我認爲博客中的方法很好。除了直接循環數據數組之外,您必須首先生成適用的EAV密鑰列表,因爲您要分別存儲密鑰。在設置它之前,您只需檢查它是否存在於數據數組中,以便不設置空鍵。

基本上你會使用三個模型而不是兩個,因爲你需要考慮管理屬性標籤的模型。