Yes, that definitely breaks 1NF. As such, I'd be agin it (that would be hill-speak, doncha know).
So if your present design looks something like:
Code:
-- ptp 20071031 Bad example, breaks 1NF
CREATE TABLE widgets (
widgetID INT
CONSTRAINT XPKwidgets
PRIMARY KEY (widgetID)
, foo DATETIME
, bar VARCHAR(50) DEFAULT 'A place to find Brett'
, commaSeparatedTags VARCHAR(255)
)
I would recommend using something like:
Code:
-- ptp 20071031 Better example, meets 1NF
CREATE TABLE widgets (
widgetID INT
CONSTRAINT XPKwidgets
PRIMARY KEY (widgetID)
, foo DATETIME
, bar VARCHAR(50) DEFAULT 'A place to find Brett'
)
CREATE TABLE widgetTags (
widgetID INT
FOREIGN KEY (widgetID)
REFERENCES widgets (widgetID)
, tag VARCHAR(50)
)
-PatP