我想知道如何规范化表是这样的:规范化表
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