사용 가능한 태그의 목록을 포함하는 테이블을 생성하십시오. 게시물에
더 적은 수의 태그를 허용하도록 비즈니스 규칙을 변경하려는 경우 비정규화된 디자인 (5 열 추가)을 사용하기 때문에 정규화 된 디자인을 사용하려고합니다. 또한 태그를 추가 할 때와 누구와 같은 다른 유지해야 할 정보가있는 경우 도움이되지 않습니다.
편집 : DDL
영업의 요청에 따라이 :
CREATE TABLE post (
id INTEGER IDENTITY
, title VARCHAR(1000) NOT NULL
, added_date DATETIME NOT NULL
, posting_user_id INTEGER NOT NULL
, ... (and so forth) ...
, PRIMARY KEY (id)
, FOREIGN KEY (posting_user_id) REFERENCES posting_user (id)
);
CREATE TABLE tag (
id INTEGER IDENTITY
, term VARCHAR(20) NOT NULL
, description VARCHAR(1000) NULL
, ... (and so forth) ....
, PRIMARY KEY (id)
);
CREATE TABLE applied_tag (
post_id INTEGER NOT NULL
, tag_id INTEGER NOT NULL
, display_order INTEGER NOT NULL
, tagging_user INTEGER NOT NULL
, applied_date DATETIME NOT NULL
, ... (anything else you want)....
, PRIMARY KEY (post_id, tag_id_, display_order) -- Or use an auto-increment, but this is unique.
, FOREIGN KEY (post_id) REFERENCES post (id)
, FOREIGN KEY (tag_id) REFERENCES tag (id)
, FOREIGN KEY (tagging_user) REFERENCES posting_user (id)
);
당신은 관계형 데이터베이스 schemal을 게시 할 수 있습니다. 그것은 이해하는 데 도움이 될 것입니다. – shibly