2012-06-28 6 views
0

사용자 프로필 섹션에서 정규화 한 테이블 범위가 있습니다. 표는 다음과 같습니다.정규화 된 테이블을 함께 연결

사용자 -> userProfileSettings -> userPersonalInfo -> userContactInfo -> userAddresses -> userBusinessInfo -> userBusinessTags -> userBusinessLogo 사용자 테이블은 프로파일 설정으로 사용자 이름과 암호를 포함

계정이 활성/비활성인지 여부와 그들이 회원이 된 날짜에 관한 정보를 포함합니다. 내가 머리에 가지고있는 방식 - 사용자가 각 테이블에 단 하나의 항목 만 가질 수 있으며 멤버가 되려면 각 테이블 (userBusinessLogo 제외)에 항목이 있어야합니다. 사용자에게 indentifed 수 userBusiness 태그 것입니다.

일대 다 관계가 동일한 사용자의 여러 행을 허용하므로 가장 좋은 방법은 무엇입니까? 비슷한 종류의 설정을 검색하고 있지만 예제를 찾을 수없는 것 같습니다.

답변

1

아마도 스키마를 지나치게 정규화했을 것입니다. 일반적으로 테이블간에 엄격한 일대일 관계가있는 경우이를 단일 테이블로 병합하는 것이 중요합니다. 사용자가 한 세트의 개인 정보, 한 세트의 연락처 정보, 한 개의 주소 및 한 세트의 비즈니스 정보를 가질 수 있다면이 모든 것을 하나의 테이블에 모아서 실수로 이러한 제약 조건을 위반하지 않아도 걱정할 필요가 없습니다 귀하의 데이터베이스에.

경험에 의하면 연락처 정보와 주소는 대개 사람/사용자 레코드와 다 대일 관계로 끝나기 때문에 그 (또는 다른 테이블)이 실제로는 일대일 관계인지 여부를 다시 생각할 수 있습니다. 앱의 목적에 맞게

관련 문제