2012-10-22 2 views
0

사용자는 프리랜서 및 회사와 같은 두 가지 프로필 유형 중 하나를 만들 수 있습니다. 이 프로필 유형에는 여러 공통 필드와 여러 고유 필드가 있습니다. 회사는 많은 사용자를 근로자로두고 있습니다.사용자 프로필 용 데이터베이스 디자인

더 명확히 말하면 : 사용자 HAS_ONE 프로필 (프리랜서 또는 회사); 회사 HAS_MANY 사용자;

이 상황에 가장 적합한 데이터베이스 디자인에 대한 제안 사항이 있으십니까?

+0

사용자는 프로필이 없습니까? 당신은 확실히 여기에 테이블 상속을 사용해야합니다. –

+0

예, 사용자는 프로필이 없어도 회사에 속할 수 있습니다. – breethe

답변

2
포함 할 수 있지만 다음에 한정되지 않고 프로파일 유형 ProfileTypeID 값 외래 키와

하나 개의 데이터베이스 테이블이 하나 개의 필드가 도움이 될 것입니다

  • 프리랜서
  • 기업 사용자에게 어떤 추가 속성이 연관되는지 판별합니다. 나머지는 모두 단순한 UI입니다.

0

상속. 이 경우에는 3 가지 옵션이 있습니다.

첫 번째 옵션은 회사 및 프리랜서인지 알 수있는 typeid 테이블이있는 회사 및 프리랜서 용 큰 테이블이지만, 귀하의 경우에는 nulls으로 끝납니다.

두 번째 옵션은 company 테이블과 freelancer 테이블과 사용자 테이블의 공통 속성에 대한 두 개의 개별 테이블입니다. 그런 다음 사용자 테이블에 typeId을 추가하여 회사 또는 프리랜서인지 알아야합니다.

세 번째 옵션은 사용자, 프리랜서 및 회사에 대해 1 개의 큰 테이블을 만드는 것이지만 대부분의 null이있는 옵션입니다.

여러 개의 공통 필드와 여러 개의 고유 필드가 있기 때문에 두 번째 옵션이 가장 좋습니다.

관련 문제