0

잘못된 제목을 용서하십시오. 올바른 용어를 생각할 수 없습니다.다른 테이블에 연결되는 SQL Server '개체'/ '속성'관계형 테이블

개체를 나타내는 데이터베이스 구조가 있으며 개체의 형식과 속성이 있습니다.

특정 유형의 속성 만 사용할 수 있습니다.

종류 - 집, 자동차

속성 - 색상, 속도, 두 색상과 속도 특성을 가질 수 있습니다 형 자동차의

개체 주소 만 입력 하우스의 개체 만 색상을 가질 수 있습니다 , 주소. 객체, 유형, 속성의 조합에 대한 값은 값 테이블에 저장됩니다.

이 모든 것이 작동하므로 관계가 위에 명시된대로 적용됩니다.

내 딜레마는 주소 즉, 다른 테이블이 있다는 것입니다. 이 테이블에는 AddressID가 있습니다.

어떻게 든 내 주소 테이블을 내 개체 값 테이블에 가입시키고 싶습니다.이 목표를 달성하기위한 깔끔한 방법이 있습니까 ??

[업데이트] - 더 세부

이미 5 개 테이블이있다. 즉

객체

속성

ObjectTypes

ObjectPropertyValues ​​

ObjectTypeProperties

이 테이블은 속성 값은 각 개체 유형에 할당 할 수있는 고정 관계를 가지고있다.

개체의 이름이 '페라리'이고 형식이 'car'이고 유형이 자동차이므로 color 속성의 값을 설정할 수 있습니다.

값은 숫자이며 id와 일치하는 colourcodes 테이블에 가입 할 수 있기를 원합니다.

답변

1

먼저 관계형 데이터베이스의 "관계"는 테이블이며 테이블 간의 관계를 참조하지 않습니다. 관계는 데이터와 키의 관련성을 정의합니다.관계형 모델링에서

는 각 엔티티는 정규화, 그래서 당신을 위해 하나 개의 모델은 4 표 같습니다

자동차 (컬러-FK, 주소-FK)

하우스 (컬러-FK, 속도)

컬러 (컬러-PK)

주소 (주소-PK, 주소 - 데이터) 관계형 모델에서

, 자동차 주택 있지 않고 일반적으로 전직 할 것 동일한 테이블에서 모델링 할 가능성은 대단히 낮습니다.

실제로 주택과 자동차의 유효한 색상은 페인트가 동일하지 않으므로 매우 다르므로 실제 응용 프로그램에서 색상을 기반으로 두 테이블을 결합하지 않을 수도 있습니다.

다른 모델링 고려 사항은 자동차가 차고있는 곳, 즉 FK에서 집 또는 FK에서 주소로 흥미로운 문제가있을 수 있습니다. 그런 다음 자동차와 주택 열쇠가 있다면 키 링의 일부가 될 수 있습니다.이 경우 키를 나타내는 링크 테이블로 모델링 할 수 있습니다.

+0

답변 해 주셔서 감사합니다. 그러나 그것이 내가 의미했던 것, 그다지 잘 설명하지 못했을 것입니다. 이미 5 개의 테이블이 있습니다. 객체 속성 ObjectTypes ObjectPropertyValues ​​ ObjectTypeProperties 이 테이블은 속성 값은 각 개체 유형에 할당 할 수있는 고정 관계를 가지고있다. 개체의 이름이 'Ferrari'이고 형식이 'car'이고 형식이 car이기 때문에 color 속성의 값을 설정할 수 있습니다. – Dve

+0

예, EAV (데이터베이스 내의 데이터베이스라고도 함) 모델은 매우 유혹적이어서 스파게티 시스템을 만들기 쉽습니다. 모두 5 개의 간단한 테이블에 있습니다. EAV를 떠날 것을 강력히 제안합니다. –

+0

EAV! 그게 내가 찾고 있던 용어 야! EAV 데이터는 매우 다양하므로 저장할 항목이 많을 수 있으므로 수백 개의 테이블을 만드는 것보다는 분명히 선택하는 것처럼 보입니다. – Dve