저는 프로젝트 개발을 위해 Symfony1.4+propel을 사용했는데, 지금은 Symfony2.0으로 전환했는데, 교리를 사용한 적은 없지만 공식 기본값은 교리이며 Propel을 제거합니다.
1. 교리를 사용하면 어떤 이점이 있습니까? 소품과 관련하여. 프로젝트는 시스템 측면입니다.
2. prop을 사용할 때 group by가 그다지 유용하지 않다는 것을 알았습니다. 그렇죠?
3. 교리는 다대다 M:N 관계를 어떻게 처리합니까?
또한 교리와 관련하여 발생할 수 있는 문제를 게시하고 다른 사람들에게도 참고합니다:
1. 문서 오류입니다. 서명되지 않은 속성과 기본 속성 등의 추가 필드 옵션을 구성하려면 옵션을 사용하세요.
2. 외래 키는 unsigned 또는 default를 지정할 수 없습니다
3. 테이블 관계는 비식별 관계입니다
감사합니다!
"표준" Doctrine에서 지원하는 기능은 PDO에서 지원하는 모든 관계형 데이터베이스(MySQL, PostgrelSql 등)에서 지원하는 기능의 모음입니다. 즉, A는 지원하지만 B는 지원하지 않는 것은 지원되지 않습니다. 예, 하지만 Doctrine은 확장성이 좋고 타사 코드가 풍부합니다. Google에서 Doctrine+Extensions를 검색하는 방법을 모르겠습니다.
Doctrine의 다대다 지원은 꽤 훌륭하고 충분합니다.
Symfony 2에서는 Propel을 계속 사용할 수 있습니다. 공식 웹사이트 문서에는 전용 장이 있습니다.
Doctrine과 Propel은 모두 좋습니다(데이터베이스 패키지를 직접 작성할 수도 있고, 좋은 동지가 될 수도 있습니다). 비교해야 한다면 몇 가지 객관적인 차이점을 언급하는 것이 좋습니다.
Default는 데이터베이스를 교차할 수 있는 속성이 아니지만 Doctrine의 Entity 클래스에서 매핑된 멤버 변수에 대한 기본값을 정의할 수 있습니다.
Doctrine의 약속은 라이브러리 전반에 걸쳐 사용될 수 있다는 것입니다. 이런 관점에서 Doctrine은 여전히 사람들을 편안하게 만들 수 있습니다. 결국 PostgreSql이나 SQLite를 사용하는 사람들이 여전히 많기 때문에 일관성을 강요하기 위해 MySQL 사고방식을 사용하지 마십시오.