2015-01-22 2 views
-2

참고 : 이것은 제약 조건, 취약한 엔티티, ... 등을 포함하지 않은 대략적인 사본입니다. 나는 아직도이 질문에 대한 확실한 이해가 필요하다.액터 데이터베이스를 구현하는 다이어그램

질문 :

  1. 가 연기자 관리 어떤 극단을 추적하려면 어떤 활약은 두 극단에 내가 다른 기관에서 설정 한 각 개체에 대한 고유 한 코드를 추적하기 위해 설정 확인해야 할 그들?

  2. 극장 위치 엔티티의 시작 위치를 Place로 지정할 수 있습니까?

  3. 배우가 한 곳에서 출생 할 수 있습니까? 아니면 배우자가 장소를 가리키는 속성을 가져야합니까?

  4. 내 관계가 지금까지 의미가 있습니까?

  5. 연극에서 Short_Descript와 같은 중복 속성이 있습니까?

  6. "Town, State/Department/Province"라는 속성을 장소에 만들 수 있습니까? 아니면 구성된 속성이어야합니까? ... 나는 더 많은 질문 등이 있으면 내가 편집하고 내 그림을 업데이트됩니다

    나는 어떠한 제안이나 힌트를 부탁드립니다 :

이 있습니다.

ERD :

enter image description here

질문 정보 :

배우가 장소에서 태어 났으며, 그/그녀가 (이 정보는 필수입니다) 장소에서 현재 살고있다.

우리는 배우가 사는 마지막으로 알려진 장소 만 데이터베이스에 저장합니다.

배우에 대한 다음 정보가 필요합니다. 배우 번호, 배우 이름, 배우가 태어난 날짜 및 배우가 사망 한 날짜 (사망한지 확인> 출생).

배우는 공연자 또는 극장 감독입니다. 수행자가 수행하기 시작한 날짜를 저장합니다.

우리는 연극 연출가로 그/그녀의 마지막 고용을 시작할 때 연극 연출가의 날짜를 저장

우리는 DBActors 놀이의 다음과 같은 유형의 고려 : 드라마, 코미디와 비극.

각각에 대해 다음과 같은 데이터를 저장합니다. 재생 번호, 재생의 제목, 재생의 간단한 설명, 기록 된 연도, 무대에서 처음 발표 된 날짜 (p_date_p, date).

드라마의 경우 드라마 유형, 주요 긍정적 인 캐릭터의 이름 및 주요 부정적인 캐릭터의 이름도 저장합니다.

드라마의 유형은 다음 중 하나입니다 : "현대" "고전", "중세", "르네상스", "19 세기"및 "현대"코미디를 들어

우리가 저장하는 코미디 유형, 주 이름이 이고 두 번째 문자의 이름이

코미디 유형은 ​​다음 중 하나입니다. "고대 mroman", "고대 그리스", "극단", "유머 코미디" "예의 희극", "commedia dell'arte"및 "불합리한 극장"; 주요 캐릭터의 우리가 비극의 유형을 저장 비극 (t_type, VARCHAR (20)), 그리고 이름을

비극 유형은 다음 중 하나입니다 : "그리스어", "로마", "르네상스" , "Neo - 고전적"및 "현대적"

연극은 한 명 또는 여러명의 극작가가 씁니다. 특정 연극에 대한 극작가는 알지 못할 수도 있습니다. 그들은 ("옷장 재생")

어떤 배우도 극작가이다 수행되지 않은 모든 알려진 연극 경우에도

우리는 데이터베이스에 저장합니다.

우리는 데이터베이스에 알려진 모든 안식향 학자를 저장합니다. 그가/그녀가 고용 된 경우

배우가 어떤 타임 스탬프

그는에 고유 극장 회사에 의해 고용/그녀는 같은 회사에 일년 내내 유지됩니다. 그는/그녀는 극단 (작은 정수)에 의해 고용되었을 때 우리는 데이터베이스에 연도를 저장

배우가 그 /시 작업 그/그녀가 이다 극장 회사를 변경하는 것이 가능하다 그녀의 인생을 여러 번. 배우가 다른 회사에서 여러 번 고용되었을 가능성이 있습니다. 그는 극장 회사가 제공하는 하나 이상의 연극 (적어도 하나)

으로 공연 할 수 있습니다.

배우가 극장 회사에 고용되어 다른 극장 회사가 발표 한 연극에서 공연하는 것이 가능합니다.

같은 연예인이 다른 연극 회사에서 제시 한 동일한 연극 에서 재생하는 것은 드문 일이지만 가능합니다. 극장 회사는 매년 1 회 또는 다수의 연극을 공연/선물합니다 ( ).

하나 이상의 여러 극장 회사가 동일한 게임을 할 수 있습니다.

연극 회사에서 재생을 시작한 날짜를 데이터베이스에 저장하려고합니다 ( ).

동일한 날짜에 시작하는 다른 극장 회사가 동일한 공연을 할 수도 있습니다.

우리는 극작가의 극작가 번호, 그/그녀의 이름을 저장할 필요가 있습니다.

극작가는 하나 이상의 연극 (하나 이상)을 썼습니다.

각 극장 회사 에 대한 데이터베이스에 저장되는 정보는 극장 회사 번호, 극장 회사 이름, 극장 회사가 시작한 의 날짜입니다. 우리는 극단이

를 시작한 데이터베이스 처음 위치 (장소)에 저장 각 극단의 경우

같은 장소에서 시작하는 하나 개 이상의 극단이있을 수 있습니다.

극장 회사는 최소한 한 명의 배우를 고용해야합니다.

각 극장 회사마다 고유 한 극장 책임자가 있습니다. 특정 날짜에 그/그녀의 작업을 시작합니다.

동일한 극장 회사가 다른 극장 디렉터를 가질 수도 있지만 별개의 시간에 동일한 극장 디렉터가 서로 다른 시간에 ( ) 극장 회사를 다르게 관리 할 수 ​​있습니다.

같은 연극 감독이 다른 연극의 연극 회사를 관리 할 수도 있습니다.

장소를 저장하는 정보는 다음과 같습니다 장소 번호, 도시 및 주/부 /도, 장소 국가

+0

@Grim Coder 다음 질문은 제가 작업하고있는 ER 다이어그램이 –

+0

오. 나는 이것이 SO에 잘 맞는지 모르겠다. –

+0

정보가 너무 많거나 질문이 너무 많습니다. 또한, 나는 단지'sql' 태그가 적합하다고 생각하지 않습니다. 이것은 단지 다이어그램 일뿐입니다. – DaaaahWhoosh

답변

0
다음

질문에 대한 내 답변입니다 : 두 개의 테이블을 볼 때마다

  1. 다 대다 관계를 보면 링커 테이블을 사용하여 쉽게 문제를 해결할 수 있습니다. 접합부 테이블이라고도합니다. "는 동일한 데이터베이스 내의 둘 이상의 다른 데이터베이스 테이블의 공통 필드를 포함하는 데이터베이스 테이블입니다. 다른 테이블 각각과 일대 다 관계의 여러 측면에 있습니다. 정션 테이블은 크로스 레퍼런스 테이블, 브리지 테이블, 조인 테이블, 맵 테이블, 교차 테이블, 링크 테이블, 다 대다 리졸버, 링크 테이블, 페어링 테이블, 전환 테이블, 횡단 보도, 연관 엔티티 Wikipedia example 이전 질문에서이 테이블을 사용하는 것을 보았습니다. 이 경우 배우가 나의 많은 Theatre Companies 및 A Theatre Company를 관리 할 수 ​​있고 많은 배우를 관리 할 수 ​​있다고 명시하고 있습니다. 이것은 여러 가지가 많기 때문에 둘 사이의 모든 relastionship에 해당 테이블 사이에 링크 테이블을 만든 경우 연극 회사 ID와 배우 ID 만 포함하는 링크 테이블에 새 행을 추가하십시오. 배우가 많은 극장 회사에서 관리하는 경우 링크 테이블에 여러 개의 행을 추가합니다. 각 행에는 동일한 액터 ID가 있지만 각 행에는 다른 연극 회사의 ID가 있습니다.
  2. 예. 시작 위치를 바로 가리킬 수 있습니다. 즉 Start_Location 속성은 연극 회사가 관련 장소 레코드의 기본 키 (PK)를 가리키는 외래 키 (FK) 여야합니다.
  3. 모든 액터는 장소에서 태어날 수 있지만, 위와 마찬가지로 액터에서 칸이 필요합니다. 즉, 장소 테이블의 PK에 대한 FK입니다. 이 컬럼을 Birth_Place라고 부를 수 있으며 배우의 출생지와 관련된 장소에있는 레코드의 PK입니다. 모든 액터에 Birth_Place가 필요하기 때문에이 열은 NOT NULL이어야합니다.
  4. 다이어그램에서이 문제를 해결할 수있는 것처럼 보입니다. 그렇습니다. 그 후속 추가에 대한 질문 1의 대답을보십시오.
  5. 중복을 제거하는 것이 좋습니다. 다이어그램이 좋아 보인다.유일한 제안은 왜 내가 플레이 테이블을 가지고 3 개의 플레이 타입 테이블을 가지고 있는지에 대한 것입니다. Play라는 표에 함께 추가하지 않는 것이 좋습니다. 현재 Play가 현재 다이어그램에 있고 이미 수행 한 속성과 동일한 속성을 포함하고있는 곳에 정확히 위치 할 수 있지만 다음도 추가합니다.

    a. 유형 - "Drama", "Comedy"또는 "Tradegy"를 입력 할 수있는 문자열이되어서 어떤 종류의 연극인지 정확하게 알 수 있습니다. 또한이 옵션을 사용하면 재생 테이블에 미래의 재생 유형을 추가 할 수 있으며 완전히 새로운 테이블을 DB에 추가 할 필요가 없습니다.

    b. Sub_Type - 문자열 일 수도 있고 현재 별도의 테이블 아래에있는 유형을 보유 할 수도 있습니다. 그것들은 본질적으로 각 테이블의 동일한 속성이며 상위 유형에 따라 다른 유형 설명자를 보유합니다.

    c. Main_Character - 주인공을 보유하고있는 문자열입니다. 왜냐하면 세 개의 별도의 표에 주인공이 있기 때문입니다. 당신은 단지 그것들을 3 개의 분리 된 것으로 부르고 있습니다. (내가 여기 들어갈 방향을 얻으시겠습니까?)

    d. Secondary_Character - 보조 문자를 보유하는 문자열입니다. 드라마와 코미디에는 부차적 인 인물이 있지만, 장사 할 수는 없으므로 무역 기록에서이 칼럼은 null이 될 것입니다. 내가 그곳에서 무엇을했는지 보아라. 이제는 4 개의 테이블을 가지고 있었고 하나의 테이블에서 4 개의 개별 테이블에있는 모든 동일한 정보를 검색 할 수 있습니다. 바라기를 바란다면 인생이 더 쉬워 질 것입니다.

  6. 원하는대로 할 수는 있지만 모범 사례가 중요하다는 가정하에이 단일 특성을 단순 특성 하위 부분으로 분리하는 것이 일반적으로 가장 좋은 방법으로 간주됩니다. I.E. 그것을 구성 속성으로 만드십시오.
+0

답장을 보내 주셔서 감사합니다. 나는 당신이 곧 제안한 대답을 살펴볼 것입니다. –

+0

5. 유형을 제안 할 때 sub_type ...이 엔티티 집합에 있어야합니다. 재생 유형이 엔티티 집합입니까? 또는 내부에 3 개의 속성이있는 속성. 그리고 각 속성 (코미디, 비극, ...)은 각 코미디의 종류, tradegy ...에 더 많은 속성을 갖게 될 것입니다. –

+1

또는 Type, Sub_Type, Main_Character, Secondary_Character가 엔티티 집합의 속성 일뿐입니다. Play –

관련 문제