2010-03-03 5 views
0

현재 내 응용 프로그램 인 SalesForce.com에 외부 응용 프로그램을 통합하고 있습니다. 제 질문은 사용자 정의 필드를 캡처하는 데이터를위한 테이블을 적절히 설계하는 것과 관련이 있습니다.데이터베이스 디자인 - 다른 시스템과의 응용 프로그램 통합

SalesForce의 경우 모든 회사에 조직 ID가 있지만 데이터 캡처 용 사용자 정의 필드가있을 수도 있습니다. 이 문제를 처리하기위한 두 가지 옵션을 살펴 보았습니다.

  1. 필드를 만들어서 이름을 배열의 키로 serialize합니다. 그런 다음 해당 배열에 값을 연결하고 직렬화하십시오.
  2. 사용자 정의 값 (필드 이름)을 허용하는 10 개 이상의 열을 db에 작성한 다음 사용자 데이터를 해당 필드에 맵핑하십시오.

장기적으로 이러한 접근법 중 어느 것이 더 효율적이고 유지 보수가 용이합니까?

답변

1

사용자 또는 테이블 단위로 이러한 사용자 정의 필드가 필요한지 여부는 분명하지 않습니다. 테이블 당 경우, 추가 필드가 필요한 각 테이블에 "형제"테이블을 만듭니다. 주 테이블과 동일한 기본 키 열과 시퀀스 번호 열 및 필드 이름 및 값 열을 제공하십시오. 나는 그것들을 두 개의 문자 컬럼으로 만들고 실제 필드 타입으로 /로부터 변환하려고 계획하고 있지만, 각 데이터 타입에 대해 별도의 컬럼을 만들고 오직 하나만 사용하고자한다면 그것은 당신의 호출이다. 그런 다음 주 테이블에서 행을 가져올 때마다 형제 테이블에서 동일한 키가있는 모든 행을 가져 와서 반환 된 열을 시퀀스 번호로 정렬합니다. 필요에 따라 형제 테이블에 열을 추가 할 수 있습니다. 예를 들어 플래그를 추가하여 특정 필드가 필요함을 나타낼 수 있습니다.

주 테이블에 삽입 된 각 행에 대한 형제 테이블의 모든 항목을 만들려면 주 테이블에 특수 키가있는 "템플릿"또는 "프로토 타입"행이 필요할 수 있으므로 모든 사용자 정의 필드를 쉽게 얻을 수 있습니다. 또한 사용자 정의 필드의 기본값을 지정할 수 있으며, 프로토 타입 항목에 저장하면됩니다.

+0

이는 회사별로 적용됩니다. 기술적으로 사용자를 포함 할 것입니다. 정보를 제공해 주셔서 감사 드리며, 나는 그것을 살펴보고 어떻게되는지 알려 드리겠습니다. – Tim

관련 문제