필드 수집 및 엔터티 참조


14

현장 수집은 어떤 이점이 있습니까? 엔터티 참조가있는 부모를 가리키는 새 콘텐츠 형식으로 동일한 작업을 수행 할 수 있습니다.

어쩌면 누군가는 상황이 더 좋을 수도있는 상황을 분석 할 수 있습니다.

작업-> 파일에 대해 필드 참조가 더 좋거나 엔티티 참조가있는 새로운 내용 유형입니까?

각 파일에 대해 해당 파일에 대한 다른 데이터가 더 필요하다고 말하면 엔티티 참조가있는 새로운 유형의 계획처럼 들리지만 필드 컬렉션 안에 필드 컬렉션을 포함시킬 수 있습니다.

Drupal이 여러 가지 방법으로 동일한 작업을 수행하는 방법을 좋아하지만이 두 솔루션이 얼마나 다르거 나 유사한 지에 대해서는 많이 알 수 없습니다.

누군가가 설명 할 수 있습니까?

답변:


15

이것은 새로운 프로젝트, Field Collection vs Entity Reference + custom entity에 직면 할 때 또는 구조가 간단한 경우 여러 DB 열 / 다중 필드가있는 Field Collection vs 커스텀 필드 인 경우 내가 직접 만드는 질문 입니다. 여기 내 경험에 근거한 의견이 있습니다 .

멀티 필드는 훌륭한 개념으로, 필드 컬렉션의 "가벼운"버전 일 수 있습니다. 관계가있는 엔터티 구조를 만드는 대신 엔터티를 만들지 않고 간단한 사용 사례를 다룹니다. 그것은 다수가 문제를 같은 완료되지 기능 통합 등 정말 다국어하지 (당신이 사용하려는 경우 그래서, 기부금이 정말로 아마 될 오신 것을 환영합니다),하지만,.

Field Collection은 여기저기서 약간의 조정만으로 수행 할 수있는 사이트를 수행하는 경우 훌륭한 솔루션이며, 사이트 빌더는 내부에 대해 걱정하지 않고 복잡한 구조를 만들 수있는 강력한 도구를 제공합니다. 기본적으로 ID로 "호스트"엔터티와 관련된 엔터티를 만들어 필드와 모든 필드를 추가 할 수 있습니다. 엔터티 참조를 사용하여 필드 컬렉션을 관리하거나 데이터를 마이그레이션하는 등 복잡한 작업을 수행해야하는 필드 컬렉션의 내부 지식에 대한 단점이 있습니다. 일반적인 도구이기 때문에 한 단계 넘어가는 것은 상당히 복잡합니다.

당신이 가지고있는 또 다른 옵션은 Entity Reference와 함께 ECK 를 사용하는 것입니다 . 그러나 이것에 대한 나의 경험은 지금까지 재난이었습니다. 도우미없이 코드로 엔티티 유형을 만드는 것이 더 쉽다는 것을 알았습니다.

당신이 필요로하는 것과 프로젝트에 가장 적합한 것이 중요합니다. 시간과 개발자가 엔티티 참조를 통해 데이터 모델과 관련된 엔티티 유형을 만들면, 당신은 무슨 일이 일어나고 있는지에 대해 더 많은 것을 통제 할 수 있습니다 당신의 데이터 구조, 그러나 당신도 그것의 "책임"입니다.

위에서 설명한 모든 솔루션을 사용하여 잠시 테스트 한 후 우리 팀에서는 항상 엔티티 유형 + ER로 이동하지만 데이터 마이그레이션이나 복잡한 i18n 설정없이 소규모 프로젝트의 경우 Field Collection이 가장 빠른 방법이라는 것을 알 수 있습니다 가다.


좋은 개요. 필드 수집이 마이그레이션 모듈을 통한 마이그레이션을 지원한다고 언급하고 싶습니다.
lefterav

1
다른 측면은 버전 관리 / 개정과 관련이 있습니다. 컨텐츠 유형 (노드)에는 개정을 추적 할 수있는 준비된 솔루션이 있으며 첨부 된 필드 콜렉션의 변경 사항이 상위 노드에 반영됩니다. 반대로, 엔티티는 참조 된 엔티티와 관련이없는 자체 개정을가집니다.
lefterav

실제로 @lefterav는 필자가 의미하는 바는 필드 콜렉션을 마이그레이션하는 것이 일부 사용 사례에서 매우 어려운 작업이며 설명해야한다는 것입니다.
pcambra

3

실제로 필드에 입력 한 데이터와 사용하려는 데이터에 따라 다릅니다.

Field Collection을 사용하려면 일반보기에서 변환, solr 색인 작성 등에 이르기까지 범위에있는 모든 것이 가능해야합니다.

필드 콜렉션에 추가 한 정보를 재사용하려면 컨텐츠 유형 또는 사용자 정의 엔티티를 사용하는 것이 좋습니다. 예 : 학교 과정에 5 개의 주제가 있습니다. 주제에는 제목, 시간 및 레벨의 3 가지 필드가 있습니다. 여러 학교 과정에서 주제를 재사용하려는 경우 컨텐츠 유형 / 사용자 정의 엔티티로 이동하여 엔티티 참조를 사용하십시오.


0

그것들은 성능면에서 대략 동등해야하지만, 필드 콜렉션은 Entity API를 사용하며 사용자 정의 컨텐츠 유형을 작성할 필요가 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.