(웹 기반 응용 프로그램 시나리오)데이터베이스 설계
나는 다음과 같은 조건이 주어진 문제를 해결하기 위해 노력하고 있어요 :
사용자 테이블과 user_contact 테이블이 있어야한다 모든 정보가 들어 있습니다. 직원과 환자는 세부 정보를 상속 받아 환자 테이블을 성 및 이름과 직원 테이블로 중복시키는 것을 제거합니다.
환자 테이블이 family_id에 의해 참조되어 가족 구성원을 그룹화하는 패밀리 테이블이 있습니다.
지금. 나는 다음 조건에서 혼란 스럽다.
계정은 환자 당이 아니라 가족 당 발행된다. 한 가족의 환자가 동일한 사용자 이름과 암호를 사용합니다. 가족에 사용자 이름과 암호 속성을 넣으면 직원의 사용자 이름과 암호도 입력해야합니다. 나는 항상 테이블에서 중복을 피하도록 가르쳐왔다. 나는 마지막 조건을 위해 테이블을 구성하는 데 정말로 어려움을 겪고있다.
어떻게 해결할 수 있습니까? Account라는 테이블을 작성하고 속성 (ID, 사용자 이름, 암호)을 가지고 그것을 family 테이블과 staff 테이블에서 외래 키로 참조해야합니까?
또는
은 내가 속성 (ID, 사용자 이름, 암호, staff_id, family_id, 유형)과 테이블라는 이름의 계정을 만들어야합니다. 이 설계에서는 staff_id 또는 family_id 중 하나의 속성이 참조 된 상위 테이블에 대한 값이 없으므로 항상 제약 조건을 반환하는 null이 될 것이므로 이것이 좋은지 잘 모르겠습니다.
또는이 옵션을 사용하면 더 좋은 방법이 있습니다.
도움을 주시면 감사하겠습니다.
감사합니다. @ Gilbert는 암호가 암호화되고 소금에 절식되어야한다고 지적했습니다. 추가 테이블 "Account"를 추가하여 사용자 이름을 저장 한 다음 password_id – MLDS
을 참조 할 것입니다. 암호 테이블의 기본 키가 user_id 인 경우. 사용자가 가족 구성원 인 경우 (성이 동일한 다른 사용자가 등록 된 상태) 나는 그때 문제가 발생할 것이라고 생각합니다. 계정 ID를 사용자 테이블에 참조하는 것이 더 나은가? 이 경우 사용자의 모든 계정은 계정 ID – MLDS
으로 식별 할 수 있습니다. @MLDS : 가족에 한 명의 사용자 ID가 있다고 생각했습니다. 계정 ID라고하면 그럴 수 있습니다. –