4

좋은 조건을 사용하고 있는지 잘 모르겠으므로 우선 문제를 설명하려고합니다.Doctrine의 복합 외래 키

저는 상호 참조 테이블 인 CompetenceCollab을 보유하고 있습니다. 여기에는 사람과 해당 능력 간의 연관성이 포함되어 있습니다. 이 테이블에는 두 개의 기본 키, 즉 사람의 ID와 역량의 ID가 있습니다. 이 시점까지 모든 것이 정상입니다.

그러나 내가 추가해야하는 새로운 기능은 다음과 같습니다. 사람들은 다른 사람의 능력에 등급을 추가 할 수 있어야합니다. 기본적으로 이것은 내가 쓴 노트를 포함해야하는 새 테이블을 추가해야한다는 것을 의미하며, 어쨌든 CompetenceCollab 테이블에 대한 링크를 포함합니다. 한 동료는 "대체 키"라고 불리는 것을 사용하여 CompetenceCollab의 각 기본 열에 하나씩 두 개의 외래 키를 정의하고 각 등급이 능력 및 인력과 연관되어 있음을 어떻게 든 데이터베이스에 알립니다. 그래서 제 질문은 다음과 같다

: 모든

  • 첫째,이 디자인을 완전히 미친 것, 그리고이 경우에 해당하는지, 어떻게해야합니까?
  • Symfony에서 Doctrine ORM을 사용해야합니다. 이것을 사용하는 것이 가능한가? 그렇다면 누군가 YAML 파일에 정의하는 방법을 알려줄 수 있습니까?

도움을 주셔서 감사합니다. 의견에 질문 할 수 있으면 언제든지 분명히 알 수 있습니다.

답변

1

이것은 2 가지 질문이지만, 질문에서 ORM 도구에 대해 아무것도 모르기 때문에 첫 번째 질문에만 답할 것입니다.

내가 "대체 키"무엇을 의미하는지 정말 모르겠어요,하지만 난 고려할 선택은 (우선 순위대로) :

1) CompetenceCollab 및 사용에 대한 대리 기본 키를 정의 교리 ORM 괜찮은 기능 세트가있는 경우 그 새 테이블

2) 새 테이블에 사람의 ID와 역량 id 필드를 모두 가지고 CompetenceCollab

을 복합 외부 키를 생성에서 외부 키를 만들 수 있습니다 꽤 일반적인 시나리오이므로 최소한 (1)을 처리해야합니다.