是否有可能優化我寫的這個查詢如何優化這個複雜的EAV MYSQL查詢?
我創建了一種動態虛擬數據庫,使我的用戶能夠添加自定義字段而不影響數據庫結構。以下是目前結構的一個非常簡單的視圖。
tables | columns
db_cases | caseid
db_structure | fieldname
db_data | fieldname, data, caseid
db_names | nameid
- 我們可以通過添加一行到db_structure
- 我們希望記錄的任何數據記錄到DB_DATA創建一個新的領域。
- 名存儲在db_names和名_ID存儲在DB_DATA
我想輸出的情況下,以一個HTML表格
希望其餘言自明,你可以看到它是多麼的效率不高。我可以通過連接做同樣的事嗎?
SELECT
case_id,
(SELECT data_field_value
FROM db_data
WHERE data_case_id = case_id AND data_field_name = 'casestatus'
) AS casestatus,
(SELECT forename_company
FROM db_names
WHERE name_id = (SELECT data_field_value
FROM db_data
WHERE data_case_id = case_id AND data_field_name = 'client1'
)
) AS client1_forename_company
FROM db_cases
感謝
我會先縮進它並使其可以理解。 – Iznogood 2012-04-02 18:06:25
動態數據庫?所以你在SQL數據庫之上放置自己的數據庫語義?可怕... http://thedailywtf.com/Articles/The_Inner-Platform_Effect.aspx – 2012-04-02 18:08:43
開始刪除它。 – Chibuzo 2012-04-02 18:08:49