0
我的任務是重構當前使用EAV model進行數據存儲的項目。使用動態表格重構EAV建模數據
在一些實現中,主表包含數百萬行行。你可以想象,我認爲這是一種令人憎惡的行爲。
重構是由需要做空間搜索驅動的,當你的緯度和長度存儲爲VARCHAR字段中的逗號分隔文本時,這並不真正起作用......但我離題了。
項目的性質意味着事先產生一組靜態的規範化表格是不可能的。把它看作一種動態的表單構建器,其中新表單中的字段數量未知,下拉列表的選項數量未知,等等。
我想要創建一個「DynamicTable」類,它將維護一個字段字典,並管理一組動態創建的表。緩存已經很好地實現了(使用memcached),所以只需在模式更改(初始提交後很少發生)以及重新啓動時(甚至更罕見)查詢字典。
我在充實甚至一些基本的東西是讓我意識到什麼,我想要做的滿刻度的初步嘗試,和我對類似項目的搜索已經相當徒勞的。
誰能:
- 讚揚mycurrent方法和祝我好運。
- 推薦一種更好的替代方法,即使它不一定更容易。
- 推薦的任何項目我可以看看那個實現類似的目標(我的搜索產生什麼!)
乾杯傢伙!
與EAV相關的問題不是表中的行數。但主要是如何執行完整性和約束。 – 2012-02-15 00:13:14
您是否考慮過爲此使用文檔數據庫(我的意思是「nosql」)而不是濫用EAV? – Charles 2012-02-15 01:28:19
@Charles:我簡單地看了一下MongoDB和CouchDB,但我不確定要求客戶安裝另一個數據庫服務器的可行性如何,而且這些選項的開發也存在相關的學習曲線。 – Leigh 2012-02-15 12:13:44