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
운영게시판
최근게시물
DBMS Q&A 875 게시물 읽기
No. 875
RDB에서의 commutative relation 구현
작성자
박종수
작성일
2003-11-01 00:59
조회수
5,937

R이라는 id를 PK로 갖는 table이 있고

이들 사이의 배타 관계를 나타내는 ExclusiveRelationOfR이라는 table을 design 하려고 합니다.

대략 다음과 같은 식이 되겠죠

create table ExclusiveRelationOfR

(

 Rid1 references R.id,

 Rid2 references R.id,

 primary key (Rid1, Rid2)

);

그런데 일반적으로 배타 관계는 commutative relation입니다.

즉 Rid1 = 'A', Rid2 = 'B'인 record와 Rid1 = 'B', Rid2 = 'A'인 record는 서로 같은 의미를 갖게 되는 것이죠.

 

따라서 구현하는 방법이

1. 두가지 경우를 모두 넣어준다.

 'A'와 'B'사이의 배타 관계를 생성할 때 두 record씩 쌍으로 생성한다.

 즉 insert into ExclusiveRelationOfR values ('A', 'B')와 insert into ExclusiveRelationOfR values ('B', 'A')를 실행한다.

2. 하나만 넣고 select 할때 두가지 경우를 모두 고려해 준다.

 즉 A와 배타 관계가 있는 R을 찾을 때

 select Rid1 from ExclusiveRelationOfR where Rid2='A'

 union

 select Rid2 from ExclusiveRelationOfR where Rid1='A';

 

이렇게 두 가지 정도가 있을 것 같은데

 

RDB에서는 일반적으로 어떤 방식으로 모델링을 하는지 궁금합니다.

[Top]
No.
제목
작성자
작성일
조회
878[급질문] 데이터베이스를 활용한 영업활동 시 발생할 수 있는 문제점에 대해 [1]
장홍준
2003-11-09
6099
877도움 부탁드립니다..
황성욱
2003-11-06
5510
876하드에있는 DB 를 제 FTP 에서 사용하려면여? [1]
황봉알
2003-11-03
5871
875RDB에서의 commutative relation 구현
박종수
2003-11-01
5937
872Prevayler, RDBMS는 빠빠이?
aero
2003-10-29
5465
871(도움요청)은행DB모듈...... [1]
안대현
2003-10-29
5850
870(도움요청)제발 부탁입니다
^^
2003-10-29
5192
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다