2012-03-14 2 views
0

저는 현재 파이프 네트워크를 나타내는 작은 데이터베이스를 만들고 있습니다. 나는 서로 연결되어있는 구역에서 네트워크를 나누었습니다. 그래프 이론에서는 영역이 정점이고 영역 간의 연결은 가장자리입니다. 두 필드가있는 데이터베이스 테이블로 가장자리를 저장합니다. 하나는 "업스트림"또는 "왼쪽"영역 용이고 다른 하나는 "다운 스트림"또는 "오른쪽"영역 용입니다. 내 그래프를 지향하고 싶습니다. 2 개의 존에 대해서는 그 사이에 단 하나의 연결 만있을 수 있습니다.관계형 데이터베이스에서 지향 그래프 제약을 보장하는 방법은 무엇입니까?

SQL에서이 제약 조건을 적용 할 수있는 방법이 있습니까? 아니면 저장 프로 시저에서 확인해야합니까?

답변

1

당신은이 개 값에 고유 인덱스를 추가 할 수 있습니다 - 당신은 테이블 2 열 ZONE_A_ID 및 ZONE_B_ID 가장자리가 가정, 코드가 ... 같이 보일 것이다

가장자리에 UNIQUE INDEX UNIQUE_EDGE (ZONE_A_ID를 작성, ZONE_B_ID);

또한 중복을 방지하기 위해 제약 ZONE_A_ID < ZONE_B_ID를 만들 수 있습니다 ... 이들에 대한

구문은 사용 DB를에 따라 달라집니다

CHECK (ZONE_A_ID < ZONE_B_ID).

참조 :

http://docs.oracle.com/cd/B28359_01/server.111/b28310/indexes003.htm#i1106547

http://www.techonthenet.com/oracle/check.php

+0

감사합니다! 문제를 해결하는 좋은 방법입니다. –

관련 문제