我有MySQL中的表結構,我有以下結構:反規範化1的許多模式
HOME_ID,HOME_NAME,dateadded
我有另一個表稱爲規格與下面的結構:
HOME_ID,spec_key,spec_value
在這裏面我可以有條目類似如下:
1, price, 500000
1, location, 90210
1, rooms, 3
1, washrooms, 3
1, furnished_basement, 0
2, location, 14410
2, garage_size, 3
2, price, 335000
對於搜索的目的,我想非規範化以上。表(denormalized_homes
)的結構將類似於:
home_id, price, location, rooms, washroom, furnished_basement, garage_size, dateadded
正如你可以從上面看到的,)不是所有的條目在所有列的值。 b)表結構不利於INSERT INTO
denormalized_homes select * from
規格類型查詢。我也不能使用存儲過程或觸發器(主機規定)。
到目前爲止,我所採取的策略是插入HOME_ID到denormalized_homes
表,然後通過各個領域的規範的東西,如下面的查詢運行:
UPDATE `denormalized_homes` dh, specs s SET dh.price = s.spec_value WHERE dh.home_id = s.home_id AND s.spec_key = "price";
創建爲每個可能的列的查詢然後運行它們的作品。我只是在想,一定有更好的辦法,是嗎?
我會,我總是留下未回答此問題幾天,以便它不從,如果他們有別的東西來提供回答阻止人們。 – StackOverflowed
啊,好的。疑難雜症。謝謝。 – Tom