2013-05-11 76 views
0

我有一個數據庫,其中存儲了大量用戶創建的產品。 用戶也可以創建「視圖」作爲容納這些產品的容器,讓我們稱之爲類別。 如果每個產品都有一個包含類別標識的類別字段,那很簡單,但是每個產品都可以添加到多個類別中,因此不起作用。 目前我通過在類別表中有一個字符串字段「products」來解決這個問題,這是一個逗號分隔的product-id列表。 我想知道的基本上是這樣做的「好」嗎?它通常被接受嗎?它會導致我沒有意識到的某種問題? 最好創建另一個名爲類似productsInCategories的表,它有兩個字段,一個帶有category-id,另一個帶有product-id,並以這種方式將它們鏈接起來? 這些方法之一會以其他方式表現更好還是更好?作爲字段或單獨的表的分界字符串ID?

我現在在使用sqlce,如果這很重要,但那很可能很快會改變。

回答

1

我會去第二個選項:一個單獨的表。

如果您需要從產品角度進行查詢,使其更易於處理。此外,加入類別將簡單快捷。這正是關係數據庫的作用。

想象一下簡單的查詢,例如產品所屬的類別。使用您的解決方案,您需要逐個檢查所有類別,解析每個類別的csv-list以查找產品。使用單獨的表格,它是一個乾淨的查詢。

+0

非常感謝你的回答,我很感激。我改變了這種方式,現在肯定感覺像是正確的方式。我只是在這裏問另一個qrelated問題:http://stackoverflow.com/questions/16496850/conditional-insert – Clox 2013-05-11 12:11:43

相關問題