2011-11-02 103 views
0

我想知道什麼是最好的解決方案關於這個問題:哪個解決方案最適合於SELECT請求的時間?

我有文章,我有類別,文章屬於一個類別。有兩種類型的類別,用戶定義和系統定義(如「收件箱」,「垃圾」等...)

所以問題是我應該只有一個項目爲每個系統定義的類別和所有文章的所有用戶將被附加到這些類別,還是應該在創建用戶時創建所有系統定義的類別,並將這些類別附加到用戶?

第一種解決方案會在每個系統定義的類別中產生大量文章,第二種解決方案將導致類別中有很多「冗餘」項目。哪種解決方案最好?

回答

0

這是您的選擇。兩種方法都有其優點和缺點。 如果與第一種解決方案,你的SELECT語句將有一個類似的WHERE條款:

WHERE (category.type = 'SYSTEM' OR category.user_id = :USER_ID) 

第二個解決方案將簡化你的SELECT語句:

WHERE category.user_id = :USER_ID 

第二個解決方案將使它添加用戶更復雜。您需要創建系統定義的類別用戶:

INSERT INTO CATEGORY (user_id, category_name, ...) SELECT :USER_ID, system_category, ... FROM SYSTEM CATEGORY; 

如果你添加一個新的系統類別,你需要插入的所有用戶。

相關問題