2009-07-06 4 views
1

현재 프로젝트에는 색에 대한 데이터가 있습니다. 각 색상은 실제 색상 (RGB 값 사용)이거나 여러 색상 층에서 존재하는 "컨테이너 색상"입니다. 내 Linq2Sql 스키마에 추가 내가 이상한 관계를 얻을 때 순환 참조에서 테이블 관계를 어떻게 정의합니까?

그래서 내가
Colors 
------ 
+ (PK) Id 

ColorComposition 
----------- 
+ (PK) Id 
+ (FK) MotherColorId 
+ (FK) ChildColorId 


이 잠재적 응용 프로그램 수준에서 잡은되어야 할 것이다 순환 참조를 생성한다 (하지만 another question이다). 이것은 내 구조를 의심하게 만든다.

컬러 많은 ColorCompositions 0 있어야 (Color.Id => ColorComposition.MotherColorId)
ColorComposition이 있어야 1 색 (ColorComposition.ChildColorId => Color.Id)

는 제 1 관계가 많은 올바르게 해석되지만 두 번째 것은 아닙니다. 그것은 잘못된 방향입니다.
외래 키의 관점에서 마지막 관계를 어떻게 정의해야합니까?

+0

아직 이해하지 못했습니다. MultiColor는 단 두 가지 색상의 조합입니까, 아니면 "연결된 목록"(하나의 자식이 다른 자식의 어머니입니까)과 같은 n 색을 나타내려고합니까? –

+0

동일한 사용자가 작성한 #stackoverflow.com/questions/1079548/could-this-circular-data-reference-be-designed- 더보기 –

+0

두 질문을 모두 읽으십시오. 그들은 같은 상황을 언급하지만, 그들은 다른 문제를 다룹니다. –

답변

3

비순환 유도 그래프를 저장하려고하는 것처럼 들립니다. 인터넷 검색 'SQL acyclic directed graph'를 시도해보십시오. 여기 상단 결과는 다음과 같습니다

A Model to Represent Directed Acyclic Graphs (DAG) on SQL Databases

귀하의 '여러 가지 빛깔의'테이블은 혼란 이름이 있습니다. 'ColorComposition'으로 바꾸시겠습니까?

+1

너는 나를 때렸다. MultiColor와는 다른 이름을 사용 하겠지만 다소 혼란 스럽습니다. CompositeColor는 어떻습니까? –

+0

기본적으로 사업체가이 시스템을 부여한 이름이기 때문에 그 이름을 지킬 것입니다. –

+0

글쎄, 그것은 흥미로운 읽기 및 참으로 내 문제는이 범주에 빠진다. 상황이 훨씬 간단하지만 상황이 문서화되어 있습니다. 나는 여기에서 내 길을 찾을 수 있다고 생각한다. 고마워. –

0

Status와 같은 다른 열 이름을 추가하고 Mother and Child를이 열에 넣습니다. ID별로 다중 색상 표에서 하나의 fkColourid 만 사용하여 관계 작업이 정상적으로 처리 된 후이 상태 열의 상태를 업데이트하십시오.

+0

나는 정말로 이해하지 못한다. 너는 하나의 칼럼에 두 ID를 연결하도록 제안합니까? –

+0

두 개의 seprate 열에 하나의 열을 정의하고이 열에 다른 열 상태를 추가하면 fkcolurid가 하위 또는 상위 노드임을 알 수 있습니다. – KuldipMCA

관련 문제