database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 29618 게시물 읽기
No. 29618
쿼리 문의 답변 부탁드립니다!
작성자
김광수(j3l1t3)
작성일
2010-04-12 15:37
조회수
7,900
Post - Tag_map - Tag 라는  태그스키마 DB스키마 입니다.

 
post테이블은 post_id와 글관련 일반 컬럼들이 있고 tag_map은 post_id와 tag_id를 가지고 있고

 
Tag는 tag_id와 tag_name라는 컬럼을 가지고 있습니다; tag_map은 tag와 post간의 중간 매개체 역활입니다.

 
인터넷에 찾아봤는대 이걸 toxi 태그스키마 구조라고 하더군요;

 
글 등록시 태그도 같이 입력하는데 입력된 태그중 사과,바나나,포도가 tag테이블이 있으면 이를 제외하고 없는것만 tag테이블에 넣어줘야 되는데 어떻게 스마트하게 쿼리를 짜야 할지 모르겠습니다

 
select tag_id,tag_name from tag where tag_name in ('사과','바나나','포도') 를 통해 tag테이블에 이미 존재하는 것은 가져올 수 있는데 들어오는 태그값들 중에 이걸 제외하고 어떻게 없는 값만 넣어야 될지 모르겠습니다;

 
관련 테이블이 3개다 보니 입력/수정시 좀 까다로운거 같습니다;

 
도움 부탁 드립니다
이 글에 대한 댓글이 총 1건 있습니다.

안녕하세요 박성원입니다.

 

흠.. toxi가 먼지는 모르겟으나 보통 table 설계를 할때 엔티티의 식별 혹은 '다:다'의 구조의 해결을 위해서

중간에 위치한 테이블을 만들어 이를 해소합니다. 아마도 그부분에 대해서 발생한 문제인데요 ^^

 

요는 app단에서 처리하는게 젤 좋으나 query를 이용해서 처리하는 방법에 대한 문의군요 ^^

 

insert와 update를 한번에 해결하는 구문이 있습니다. 바로 'REPACE'인데요

 

문제는 이녀석은 같은 값이 있을 경우 delete를 하고 다시 insert를 하는 녀석이라 퍼포먼스에 약간의

위해를 가하는 녀석입니다. 만약, 해당 테이블이 매우 크거나 클러스터드 인덱스를 가지는 녀석이라면

나중을 위해서라도 번거롭지만 중복값을 체크하는 process를 두신다음에 insert를 하심이 현명하리라

생각됩니다. ^^

 

자세한 구문은

http://dev.mysql.com/doc/refman/5.0/en/replace.html

에 있습니다 ^^

 

건승하시길 ^^

 

박성원(darkancia)님이 2010-04-16 14:36에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
29621apmsetup7로 설치후 odbc 접속에러. [1]
이기자
2010-04-17
7545
29620동영상저장 DB 만들려고하는데.. [1]
배고픈자
2010-04-14
12748
29619특정 컬럼의 값중에 줄바꿈 값을 지우고 싶습니다. [1]
파란산타
2010-04-13
7516
29618쿼리 문의 답변 부탁드립니다! [1]
김광수
2010-04-12
7900
29617안녕하세요 mysql 테이블 생성때 이런게 가능한가요?? [1]
투루로맨스
2010-04-12
7406
29616mediumtext 필드의 용량에 대해서...궁금한점.. [2]
맹가이버
2010-04-10
7553
29615오라클에서 사용하던걸 mysql로 바꿔주시면 고맙겠습니다 [1]
mysql
2010-04-09
8628
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.023초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다