2011-03-19 2 views
3

기존 데이터베이스를 사용하고 Drupal 7로 이동 중입니다. 레거시 데이터베이스 모델에는 공통 열의 기본 개체 테이블이 있고 개체가 이미지, 표본, 분류군인지 여부를 지정하는 형식 열이 있습니다. 각 ' type '은 외부 키를 사용하여 기본 오브젝트 테이블에 연결된 자체 별도의 컬럼 테이블 (이미지 테이블, 표본 테이블, 지역 테이블 등)을 갖습니다.필드 API의 번들 관계에 대한 외래 키?

이미지와 마찬가지로 일부 경우 표본 ID를 참조하는 열이 있습니다. 즉, 여러 이미지가 동일한 "specimen_id"에 속할 수 있습니다. 이 ID는 관련 표본의 기본 객체 ID입니다.

드루팔 (Drupal로 옮겨 가면서, 나는 기본 객체 테이블을위한 새로운 실재물을 만들었고, 각각의 기본 객체 'type'에 대해 묶음을 정의했다. 각 '유형'테이블의 일부로 사용되는 열은 이제 모듈 설치 중에 번들에 연결됩니다. 필드 및 필드 인스턴스의 배열을 정의한 다음 배열을 반복하고 field_create_field()field_create_instance()을 호출하여이 작업을 수행합니다.

올바른 방법입니까?
specimen_id와 같은 외래 키 필드를 만들 때 주어진 표본의 기본 개체 엔터티 ID를 참조하는 것을 어떻게 알 수 있습니까?
이러한 관계를 설정하려면 외래 키 설정을 갖고 실제로 필드 및 필드 인스턴스를 생성하므로 실제로 이들 관계를 정의하려면 hook_field_schema()을 사용해야합니까?

물론 이것은보기를 만들고 정보를 가져와야 할 때 적합합니다. 나는 묶음 < => 묶음 관계로 표현할 수있을 것 같아요. CRUD 작업 중에 ID를 사용하여 필요할 때 필요한 것을 얻을 수 있습니다.

도움이나 의견을 보내 주시면 감사하겠습니다.

답변

-1

Migrate 모듈을 사용하십시오.

"마이그레이션 모듈은 다른 소스 (예 : 다른 CMS의 웹 사이트를 Drupal로 변환 할 때)에서 콘텐츠를 Drupal로 마이그레이션 할 수있는 유연한 프레임 워크를 제공합니다."