특정 시스템에 로그인 할 수 있어야하는 여러 유형의 사용자를 재현하는 여러 엔티티가 있습니다. 또한, 그들은 그들과 관련된 여러 가지 유형의 정보를 가지고 있습니다.이 일대일 관계를 모델링하는 방법은 무엇입니까?
예 : 전자 메일 주소가있는 "일반 사용자"와 워크 스테이션 번호가있는 "관리자 사용자"(가상의 경우에주의하십시오). 두 주체는 이름, 성, 주소 및 전화 번호와 같은 공통 속성도 공유합니다. 마지막으로 로그인 할 때 고유 한 사용자 이름과 암호가 필요합니다.
응용 프로그램에서 사용자는 사용자 이름과 암호를 입력하기 만하면 응용 프로그램의 기능이 약간 변경됩니다 사용자 유형 이 작품에서 사용자 이름이 고유해야한다고 생각할 수 있습니다.
어떻게 효과적으로 모델링해야합니까?
두 개의 테이블을 만들 수는 없습니다. 사용자 이름에 고유 한 constaint를 적용 할 수 없기 때문입니다.
서로 다른 유형의 특정 정보를 가지고 있기 때문에 하나의 테이블에 모두 넣을 수도 없습니다.
"사용자"(사용자 이름 및 암호 사용), "일반 사용자"및 "관리 사용자"에 대해 하나씩 3 개의 개별 테이블이 필요하다고 생각하지만 이들 간의 관계는 어떻게 될까요? 작업? 아니면 다른 해결책이 있습니까?
(그런데 대상 DBMS는 MySQL이므로 데이터베이스 시스템 자체에서 일반화가 지원되지 않는다고 생각합니다.)
이 방법이 좋습니다. 하나의 쿼리에서 2 개의 관련 테이블에서 정보를 얻는 방법이 있을지, 아니면 처음에는 쿼리로 제한 한 다음 if와 다른 쿼리 (아무 문제가 없지만 궁금 해서요)입니다. – pbean
서로 다른 테이블에 다른 필드가 있다고 말하면 단일 쿼리를 작성하기가 어렵습니다. 그리고 나는 당신이 하나의보기에서 두 usertypes의 정보를 또한 보여줄 것이라고 생각하지 않습니다 - 그래서 그들을 결합 할 필요가 없습니다. – Riho