우선, 나는 C & P와 같이 보이는 "기술적 인"답변으로 몇 가지 유사한 질문을 읽었습니다. 명확한 예가 필요합니다. 정규화는 3NF입니다.식별하고 식별 할 수없는 관계
이 프로젝트에서는 관리 패널에서 도시와 구역을 만들어야하며 각 구역은 도시에 속해야합니다. 또한 사람들을 다른 이름으로 동일한 호텔을 알고 있으므로 호텔을 만들고 해당 구역에 지정하고 마지막으로 각 호텔의 별칭을 만듭니다. 테이블 hotels 및 hotels_alias는 자동 완성 입력을 채 웁니다.
가격 계산은 지역에 따라 서비스 (표준, 개인 및 VIP)에 따라 이루어지며 승객 수와 계절에 따라 승객 당 가격을 계산할 논리 또는 테이블을 아직 만들지 않습니다 계절. 이것이 아래 다이어그램에없는 이유입니다.
내가 찾은 좋은 설명은 좀 의심이 그러나 What's the difference between identifying and non-identifying relationships?
입니다.
hotels_alias 차례로 영역 테이블 없이는 존재할 수 없습니다 테이블의 호텔 없이는 존재할 수 차례이 도시없이 존재하지 않습니다. 도시는 여러 구역으로 나누어 져 있으므로 호텔은이 구역에 속하고 도시의 일부인 구역은 호텔에 속하며 호텔이 없으면 존재할 수 없습니다.
지금까지 도시는 강하거나 모회사이고 구역, 호텔 및 호텔 _ 별칭은 하위 실체입니다.
EER 다이어그램에서 식별 관계가 있음을 알 수 있습니다. 첫 번째 질문은 : 아이 엔티티가 자신의 ID를 가지고 있음에도 불구하고 올바른 것인가? 이 ID는 PK, NN 및 AI입니까? 일부 예에서,이 하위 엔티티는 자체 ID를 가지지 않으므로 PK는 N : N (zones_has_servicees) 관계와 같이 관련 테이블의 두 FK로 구성됩니다.
실제로 부모 테이블에서 자신을 식별 할 수 있어야하므로 하위 테이블에 고유 ID가 필요하지 않은 경우 어떻게 영역이나 호텔 또는 호텔 별칭을 업데이트하거나 삭제할 수 있습니까? ?
DELETE FROM zones WHERE name = 'name'
이 정보가 맞습니까? 이름 열에 대한 색인을 생성해야합니까? 어떤 장점이 있다면, 자체 ID 대신 이름 열을 사용하면 어떤 이점이 있습니까? 자식 테이블이 자체 ID를 가지고이 ID와 부모 테이블의 ID를 사용하여 복합 PK를 만드는 것이 괜찮습니까? 이런 종류의 관계는 어떤 기능을 가지고 있습니까? 아니면 InnoDB와 같은 엔진에만 해당합니까? ON DELETE CASCADE 작업을 수행 하시겠습니까?
동일한 이름의 두 영역이 있으면 어떻게됩니까? 예 : 호텔 존, 칸쿤과 툴룸의 두 도시가 그 지역을 가지고 있습니다. ?를 DELETE가 될 수 있도록하려면
DELETE FROM zones WHERE name = 'name' AND cities_id = ID
워드 프레스는 당신이 wp_postmeta와 wp_posts와 약한 관계를 사용하고 있음을 알 수있는 아래와 같은 관계를 만들어 왜 부모와 자식 개체가 다음 무엇인지 이해. wp_postmeta가 wp_posts 없이는 존재할 수 없다고 가정합니다. 그것은 주석과 사용자에게도 똑같이 적용됩니다.