Doctrine 2.0은 복합 키를 지원합니다. 그러나 나는 내가 무엇을 찾고 있는지 알 수 없다.Doctrine composite primary key
나는 3 개의 테이블 => agent, client 및 client_group이 있습니다.
에이전트가 client 및 client_group을 만듭니다. Client_Group에는 복합 기본 키 => id, agent_id가 있습니다. agent_id는 에이전트 테이블에서옵니다. id를 자동으로 증가 시키려면 agent_id가 에이전트 테이블에서옵니다.
yaml 파일을 쓰려고하는데이 agent_id를 client_group의 기본 키로 지정하는 방법을 모르겠습니다. client_group_id 및 agent_id는 클라이언트 테이블의 외래 키입니다. 또한, 복합 PK가 자동 증분 필드를 가질 수 없다는 Doctrine 문서를 읽었습니다.
그래서 여기에서 생산하려고하는 것을 실제로 할 수 있는지 궁금합니다.
의 관계는 다음과 같이 만 보여주는 YAML :
에이전트 :
oneToMany:
client_group:
targetEntity: ClientGroup
mappedBy: agent
client:
targetEntity: Client
mappedBy: agent
client_group이라는
manyToOne:
agent_id:
targetEntity: Agent
inversedBy: client_group
joinColumn:
name: agent_id
referencedColumnName: id
oneToMany:
client:
targetEntity: Client
mappedBy: client_group
클라이언트는이에
manyToOne:
client:
targetEntity: ClientGroup
inversedBy: client
joinColumn:
name: client_group_id
referencedColumnName: id
agent:
targetEntity: Agent
inversedBy: agents
joinColumn:
name: agent_id
referencedColumnName: id
어떤 도움 aprreciated 될 것이다. 감사.
* "복합 기본 키의 한 필드가 자동으로 생성되기를 원합니다. Doctrine 2.1"*이 지원하지 않는다고 이해합니다. 그게 정확히 내가 원했던 것입니다. 정상적인 것 같습니다. 예를 들어 사용자는 phoneNumbers를 가지며 키의 한 부분은 user_id이고 다른 하나는 자동으로 생성 된 숫자 ID 값입니다. – Wilt
UUID를 사용해야합니다. http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/sharding.html#use-guid-uuids – Bruno