我想知道如何規範化表是這樣的:規範化表
field1|field2|field3
text1 |txt2 | 1,2,5
other1|other2| 1,8,7
FIELD1會重複很多次,場2是唯一的(不重複),現場3 - 用戶ID。 像最喜歡的東西。
我想知道如何規範化表是這樣的:規範化表
field1|field2|field3
text1 |txt2 | 1,2,5
other1|other2| 1,8,7
FIELD1會重複很多次,場2是唯一的(不重複),現場3 - 用戶ID。 像最喜歡的東西。
爲此表提供一個主鍵,並使用field3 +此鍵創建一個新鍵。
主表(你是變形後原始表)
field1 | field2 | fID
... | ... | 1
... | ... | 2
收藏表:
fID | field3
1 | 1
1 | 2
1 | 5
2 | 1
... | ...
選擇數據
您可以使用JOIN或只是一個在哪裏得到結果。比方說,
SELECT field3 FROM Favorites WHERE fID = 1
得到
1,2,5
所以,如果我沒看錯你的問題是關係到主細節/親子模式。
資源
首先,如果字段2是唯一的,那麼它應該被聲明作爲主鍵(或者,至少是一個獨特的指數)。其次,在field3中有多個值的事實告訴你,field3應該成爲一個單獨的表,它使用某個唯一值(我們剛纔確定是field2)將其鏈接回第一個表(相關)。
所以,你的數據庫創建腳本應該是這樣的:
CREATE TABLE MainTable (field2 VARCHAR NOT NULL PRIMARY KEY, field1 VARCHAR)
CREATE TABLE OtherTable (field2 VARCHAR REFERENCES MainTable, field3 INTEGER)
你也可以考慮增加一個獨立的主鍵值第二個值或使場2和場3一起主鍵。
我不清楚你的意圖。也許是一個更真實的例子? – Randy 2010-11-13 14:54:58