2017-09-28 5 views
1

나는 접근하기가 매우 쉽고 선생님은 따라하기가 어렵습니다. 그래서 나는 여기에 아마도 빠져있을 것 같은 아주 기초적인 무언가가있는 것처럼 느낍니다. 나는이 질문에 가장 큰 문제가 있다고 생각한다. 나는 실제로해야 할 일을 의사 소통하는 말을 찾기 위해 고심하고 있는데, 이는 실제로 Google-fu에 댐퍼를 설치하고있다.레코드를 다른 테이블에 연결하는 것을 어떻게 처리합니까?

나는 을 생각하고 있습니다.으로하고 싶습니다. 나는 전체적으로 다른 테이블을 기록하고 싶습니다.

Main 
+----+-------+--------+-------+----------------------------+ 
| PK | Name | Phone# | [...] |   Cards   | 
+----+-------+--------+-------+----------------------------+ 
| 1 | Bob | [...] | [...] | < Reference to 2nd table > | 
| 2 | Harry | [...] | [...] | [...]      | 
| 3 | Ted | [...] | [...] | [...]      | 
+----+-------+--------+-------+----------------------------+ 

Bob's Cards 
+----+-------------+-----------+-------+-------+-------+ 
| PK | Card Name | Condition | Year | Price | [...] | 
+----+-------------+-----------+-------+-------+-------+ 
| 1 | Big Slugger | Mint  | 1987 | .20 | [...] | 
| 2 | Quick Pete | [...]  | [...] | [...] | [...] | 
| 3 | Mac Donald | [...]  | [...] | [...] | [...] | 
+----+-------------+-----------+-------+-------+-------+ 

이렇게해도 주 테이블의 각 레코드에 대해 완전히 새로운 테이블이 필요합니다.

내가 생각할 수있는 유일한 대안은 'Card1, Condition1, [...], Card2, Condition2, [...], Card3, [...]'필드를 주 테이블에 추가하는 것입니다. 누군가가 저장된 최대 카드 수를 늘릴 때마다 다른 필드 집합을 추가해야하는 경우.

그래서 나는 선생님이 제대로 설명하지 못한 다른 접근 방법이 있다고 생각합니다. 우리는 양식 및 보고서를 아직 다루지 않았으므로 그들을 걱정할 필요가 없습니다.

모든 포인터가 있습니까?

(또한이 데이터 및 구조의 전체는 단지 내 자신의 거친 팩시밀리이며, 필자는 '내 데이터는 pls 수정'보다 '직접 작성하고 적용하는 방법을 배우기 때문에.')

+2

이것은 많은 요소에 따라 다르지만 일반적으로 CardOwnerID라는 숫자 데이터 유형을 사용하여 카드 테이블에 필드 하나를 추가하면 간단하게 유지할 수 있습니다. 귀하의 예에서는 Bob을 나타내는 1이됩니다. 이를 외래 키라고합니다. (FK) -하지만 카드와 여러 명의 가능한 소유자가 있다면 세 번째 테이블 인 Junction 테이블이 필요합니다. 이것은 주 개인 ID와 카드 ID로 구성됩니다. – Minty

+0

아, 그래. 그래서 본질적으로 저는 그 관계에 대해 거꾸로 생각하고있었습니다. 내 메인 테이블에 카드에 대한 참조가 전혀 포함되어 있지 않아서 사람과 카드의 연락처 정보를 카드에 연결하는 것은 보고서에만 나타납니다. 그런 식으로 남겨 놓는 것이 이상하게 느껴지지만 메인 테이블이 스프레드 시트 나 보고서를 능가하지 못하도록 내 머리 속에서 가져와야한다고 생각합니다. – aryst0krat

+0

합리적인 데이터베이스 디자인에서는 "전체 키와 아무것도 그러나 열쇠 ". 즉, 각 레코드는 키로 식별 할 수 있습니다. 당신이 링크를 원할 경우/키를 사용하여 표현하십시오 : –

답변

0

세 번째 옵션은 도움이되는 Minty의 의견에 성공적으로 있습니다.

그러나 이것은 간단 당신이 일반적으로 CardOwnerID라는 숫자 데이터 유형, 카드 테이블에 하나 개의 필드를 추가 유지하기 위해, 사물의 수에 따라 달라집니다. 귀하의 예에서는 Bob을 나타내는 1이됩니다. 이것을 외래 키라고합니다. (FK) - 그러나 카드와 여러 명의 가능한 소유자 테이블이있는 경우 세 번째 테이블 인 접합 테이블이 필요합니다. 이것은 주 담당자 ID와 카드 ID로 구성됩니다. - Minty

+1

여러 명이 같은 카드를 소유 할 수 있기 때문에 접합 테이블이 * 필요 *하지 않습니다. 사람 ID 열을 두 번째 테이블에 추가하는 대신 junction 테이블을 추가하는 것은 비교시 특정 문제가있는 중복을 포함합니다. – philipxy

관련 문제