0
here과 동일한 데이터 모델이 있다고 가정합니다. 세 개의 열이있는 DB 스키마의 동의어
Table: Item
Columns: ItemID, Title, Content
Table: Tag
Columns: TagID, Title
Table: ItemTag
Columns: ItemID, TagID
당신이 stackoverflow
에있는 유사로 태그 동의어를 원한다면
SQL
새 항목을 삽입하는 문이 어떻게 생겼습니까? 새 항목이 모든 동의어 또는 하나의 기본 태그 만 연결될 것이며 코드에서 동의어임을 감지해야합니까? 당신이 부드러운가을 삽입하는 것이 좋습니다 접근
, 태그 조작에 의해 검색 및 삭제?
TagSynonym.TagID
Table: Tag
Columns: TagID
Table: TagSynonym
Columns: TagID, Title
가 Tag(TagID)
에 FK 것와 Title
는 PK 것 :
(3 표에) 나머지를 할 것입니다
Tag.TagID
과 계단식 효과에만 간단한UPDATE
(하나의 행)가 필요합니다 두 개의 태그를 병합 같은 간단한 조작 하나는 주요 동의어의 경우 주요 동의어 또는 "main"의 이름을 포함 할 것이라고 "동의어"열 태그 태그. 두 개의 테이블을 갖는 것이 더 나은가? – xralf'ItemTag.TagID'는'(TagID)'가 기본 키인'SomeTable (TagID)'에 대한 외래 키 여야합니다. 그러나'TagID'를 사용하면 (현재) 모든 동의어를 확인하고 싶습니다. 맞습니까? 그래서, 나는 다른 테이블을 추가하지 않고도 방법을 보지 못합니다. –
이제 알겠습니다. 두 개의 테이블을 사용하면 태그 삽입, 삭제 및 검색 구현이 더 순수 해집니다. – xralf