2013-12-17 2 views
-2

4 개의 테이블이 있습니다.데이터베이스 설계 여러 테이블의 기본 키가 하나의 테이블에 연결됩니다.

server : serial_number{PK}, host_name 
printer : serial_number{PK}, host_name 
VM : host_name{PK} 
ip_address : host_name{PK}, ip_address{PK} (composite key) 

서버, 프린터 및 VM 테이블 일대 다 ip_address 테이블.
host_name에 의해 링크됩니다.

이 정보가 맞습니까?

내 질문이 더 명확하게하기 위해, 내가 무엇을 가지고 지금

서버 1 -------- * IP_ADDRESS
프린터 1 -------- * IP_ADDRESS입니다
VM * 1 -------- 각 테이블 IP_ADDRESS

HOST_NAME는 다를 것이다. 서버와 프린터 테이블이 같은 구조를 가지고

enter image description here

+1

문제를 자세히 설명해주십시오. 너 무슨 짓을 한거야? 왜 하나의 열만 가진 테이블 VM이 필요한지 알 수 없습니다. 자세한 내용을 알려주십시오. – smartmeta

+0

VM 테이블에는 많은 열이 있지만 여기에 필요한 열을 하나 넣었습니다. 각 서버, 프린터 및 VM에는 둘 이상의 IP 주소가있을 수 있습니다. 그래서 각 장치의 IP 주소를 삽입 할 하나의 ip_address 테이블이 있습니다. 무슨 뜻인지 알 겠어? – Lin

답변

0

, 나는 하드웨어를 구별하는 hardware_type 열이있는 호스트 이름을 저장하는 하나의 테이블을 가지고 제안했다. 장치 유형과 장치 이름의 매핑을 저장할 다른 테이블을 가질 수 있습니다.

또한 vm 테이블의 구조가 (?) 동일한 경우 해당 테이블도 마스터 테이블에서 병합 할 수 있습니다.

ip_address의 구조는 호스트 이름이 고유한지 여부에 따라 변경할 수 있습니다. 더 자세한 정보를 얻으려면 전체 구조가 필요합니다.

+0

구조가 동일하지 않습니다. 그래서 나는 그들을 합칠 수 없다. – Lin

+0

두 서버/프린터의 호스트 이름이 같을 수 있습니다. 이 경우 어떤 호스트 이름이 어떤 서버에 속하는지 확인하는 메커니즘이 필요합니다. 따라서, 나는 device_type (server/printer/vm)과 serial_number를 구별하기 위해 ip 주소 테이블에 제안 할 것이지만, vm 테이블에는 serial_number 컬럼이 없다. 이 세 테이블 중 하나의 구조를 변경하는 것이 가능합니까? –

+0

제안 해 주셔서 감사합니다. ip_address 테이블의 device_type에 추가했습니다. host_name은 고유합니다. 그래서 걱정할 필요가 없습니다. 내가 이해하는 것은 - ip_address 테이블에 대한 서버 테이블 링크 인 경우 ip_address.host_name이 FK라는 것입니다. 그리고 ip_address 테이블에 대한 프린터 테이블 링크, ip_address.host_name은 FK입니다. 이는 ip_address.host_name 값이 서버와 프린터 테이블에 있어야 함을 의미합니다. 내가 맞습니까? 나는 서버와 프린터의 host_name이 고유하기 때문에이 경우를 원하지 않는다. – Lin

관련 문제