我最近繼承了一個嚴重依賴於EAV數據庫結構的系統,並且從性能的角度來看真的很掙扎。nhibernate/orm支持eav嗎?
我想要做的是使用nhibernate或其他合適的ORM產品將這些EAV表映射到實體,以便我們可以將行映射到屬性。然後我們可以重構數據庫以使其成爲關係數據庫。有誰知道這是否可能?一個例子也將不勝感激! :)
爲了給你一個感覺的結構,它看起來是這樣的:
實體(ENTITYID) EntityVarchar(ENTITYID,VarcharValue) EntityFloat(ENTITYID,VarcharValue)
等。如果我有一個Customer實體,我想說Customer.Name來獲取名稱而不是Customer.Varchar [「Name」]。
請注意,在我們的系統中不需要使用EAV模型,我們不允許運行時更改數據結構,我認爲這是一個糟糕的做法。
使用nHibernate,您可以將實體映射到類中,使其與數據庫模式不是1:1映射,因此您無需將自己牢固地連接到數據庫。 我只是無法看到一個方法,在映射多個行的時刻,每個屬性對應一個對象。通常你會有一行包含單個對象的數據。 – spooner 2009-07-18 10:37:34