의사의 사무실과 약국의 데이터베이스 모델을 설계하고 있는데 고객이 고객 및 환자에 대한 데이터를 저장하도록 요청하면 고객은 약국을 구입 한 사람과 의사를 볼 수있는 환자이므로 고객은 동시에 인내심을 갖고 반역한다. 이 상황을 어떻게 관리 할 것인가? 각각에 대해 하나의 엔티티를 작성하면 사람이 두 테이블에 모두있을 확률이 있습니다. 어떤 제안?MySQL에서 속성이 공통 인 두 엔티티를 구현하는 방법은 무엇입니까?
2
A
답변
2
두 가지 방법 :
한 표라는 사람 테이블은 파일 'is_customer'진정한 될 수있다 'is_patient'/ 거짓
세 개의 테이블을 모두 저장하는 사람들을위한 일을 가지고 고유 한 ID를 가진 관련 데이터 (이름, 주소, 전화 번호 등), 고유 한 ID의 테이블 및 환자 테이블에 대한 참조 인 환자에 대한 하나의 테이블, 고유 ID의 테이블 일 뿐인 고객 용 테이블 및 people 테이블에 대한 참조. 고객 및 환자에 대한 데이터가 정확히 동일한 경우
2
, 당신은 개인 정보를 하나의 테이블과 비트 또는 정수가 될 수 중 하나 type
열을 가질 수 있습니다. 이 type
열은 기록이 환자인지 고객인지 여부를 알려줍니다. 환자가 고객이기도 한 경우에 대한 반복 된 기록은 보이지 않지만 이러한 상황을 피하려면 링크 테이블을 만들어야합니다. 뭔가 같은 :
person
(id, name, address, ...)
그리고
person_type(person_id, type_id)
고객과 환자가이 표 2 개 항목이 있습니다 모두의 사람; 각각
type
(고객/환자) 당 하나.
관련 문제
- 1. 속성이 없거나 null 인 엔티티를 가져 오시겠습니까?
- 2. 두 벡터에서 공통 엔티티를 제거 하시겠습니까?
- 3. iPhone 용 공통 기본보기를 구현하는 방법은 무엇입니까?
- 4. 두 테이블을 공통 속성으로 병합하는 방법은 무엇입니까?
- 5. MySQL에서 시간 상향 호환성을 구현하는 방법은 무엇입니까?
- 6. MySQL에서 '전역 고유 ID'를 구현하는 방법은 무엇입니까?
- 7. MySQL에서 데이터베이스 테이블을 구현하는 방법은 무엇입니까?
- 8. 두 원에 공통 인 모든 점 찾기
- 9. automapper를 사용하여 두 엔티티를 매핑하는 방법은 무엇입니까?
- 10. 두 개의 개별 엔티티 모음에서 공통 엔티티를 찾습니다.
- 11. 엔티티를 업데이트하는 방법은 무엇입니까?
- 12. 두 테이블 mysql에서 인덱스를 만드는 방법은 무엇입니까?
- 13. 엔티티 배열이있는 엔티티를 사용하여이 심포니 폼을 구현하는 방법은 무엇입니까?
- 14. MySQL에서 "읽기 및 쓰기 잠금"을 구현하는 방법은 무엇입니까?
- 15. mysql에서 'like'와 'in'을 구현하는 방법
- 16. C# 일부 컨트롤에 종속적 인 폼을 구현하는 방법은 무엇입니까?
- 17. 인증을 구현하는 방법은 무엇입니까?
- 18. 공통 키를 기반으로 PHP에서 두 개의 배열을 결합하는 방법은 무엇입니까?
- 19. MySQL에서 다음 작업을 구현하는 더 좋은 방법은 무엇입니까?
- 20. 두 개의 "고유 한"속성을 가진 엔티티를 처리하는 방법은 무엇입니까?
- 21. 특정 속성이 최소 인 배열에서 개체를 선택하는 방법은 무엇입니까?
- 22. 모든 속성이 정적 인 클래스를 만드는 방법은 무엇입니까?
- 23. 종속성 속성이 "정적"인 이유는 무엇입니까?
- 24. 공통 인터페이스를 구현하는 부모 및 자식 클래스
- 25. MySQL에서 다른 테이블의 집계 결과 인 필드를 업데이트하는 방법은 무엇입니까?
- 26. 두 엔티티를 연결하는 테이블
- 27. 타사 라이브러리에서 두 클래스의 공통 부모를 확장하는 방법은 무엇입니까?
- 28. 두 개의 연결된 목록간에 공통 값을 확인하는 방법은 무엇입니까?
- 29. sqlalchemy의 공통 관계에 대해 두 개의 쿼리를 결합하는 방법은 무엇입니까?
- 30. 링크 된 목록에서 두 세트의 공통 요소를 얻는 방법은 무엇입니까?
옵션 1, 그러나 표시기 열이 필요하다는 것을 나는 모른다 - 그 값은 관련 테이블에있는'person_id'/etc의 존재에 기초하여 생성 될 수있다. –
그래, 그게 옵션 2에 관한 모든 것, 그 관련 테이블의 생성은 첫 번째 참조 : :). – Whetstone