PostgreSQL 프로젝트의 스키마를 만드는 데 문제가 있습니다.SQL 스키마 (postgresql) 만들기
프로필이 있고 각 프로필이 일반, 교육 및 고용 프로필의 세 가지 유형으로 제공되므로 소셜 네트워킹 사이트 용입니다. 따라서 각 프로필마다 다른 속성이 필요합니다.이 모든 것을 한 테이블에서 어떻게 수행합니까? ?
create type ProfileTypeValue as enum
('generic', 'education', 'employment');
create Profiles (
id integer
type ProfileTypeValue
....?
primary key (id)
);
는 교육 프로파일이 있다면 예를 들어, 우리는 기관 이름 등을 가지고하거나 고용 프로파일 인 경우에, 우리는
그것을인가 등, 고용주 이름 속성을 가질 필요가 필요가 있기 때문에 가장 좋은 3 개의 테이블, 각 프로필 유형에 대해 1, 그게 가능한지 모르겠지만 ... 나는 그것이 프로필의 경우 이러한 성명을 포함하거나 프로파일의 경우 이러한 속성을 포함하는 경우 if 문을 가지고 있어야한다고 생각합니다.
+1, 아주 좋은 답변입니다. 개인적으로 옵션 2로 갈 것입니다. 옵션 3은 Postgres에서'hstore' 데이터 타입을 사용하여 매우 효율적이고 또한 색인을 생성 할 수 있습니다. –
주석에 오타가 있음 : hstore는 옵션 4 (키 - 값 저장소) 용입니다. http://www.postgresql.org/docs/9.0/static/hstore.html. –
@Aleski : 당신 말이 맞아요. 감사 –