Microsoft Access에서 특정 항목에만 표시 할 필드 이름을 얻는 방법


1

Access의 내 데이터베이스는 분류 (예 : 영화, 언론 (로컬), 출판 (로컬) 등)별로 나열됩니다.

시네마 분류의 경우 '시네마의 화면 수'라는 제목의 열을 갖고 싶습니다. 그러나 다른 분류에는이 열이 필요하지 않습니다.

영화관에만 표시되는 열을 어떻게 만드나요? 시네마 이외의 분류를 위해 N / A로 열을 채우고 싶지 않습니다.

여기에 이미지 설명을 입력하십시오

답변:


3

당신이 묻는 것은 데이터베이스 정규화 입니다. 데이터베이스 디자이너가 DB에서 중복되거나 일관성이없는 데이터를 제거하는 데 사용하는 디자인 프로세스입니다. 귀하의 경우, 화면이없는 레코드에 대해 화면 수 필드를 갖는 것은 의미가 없으므로 표준화가 필요합니다.

문제를 해결하려면 데이터베이스에 두 번째 테이블을 추가하고 필드를 입력해야합니다. 그런 다음 기본 테이블과 두 번째 테이블을 고유 한 ID 필드와 연결합니다. 마지막으로 기본 테이블의 레코드에 추가 세부 사항이 필요한 경우 두 번째 테이블에만 레코드를 작성하십시오.

해당 프로세스에 대한 개요는 다음과 같습니다.

  1. 자동 번호 유형의 기본 테이블에 필드를 추가하십시오. 이름을 CinemaID로 지정하십시오. Access에서이를 테이블의 기본 키로 사용하도록합니다.
  2. 다른 테이블을 작성하십시오. 아마도 이름은 Cinema_Detail 입니다.
  3. 새 테이블에서 Long 유형의 필드를 추가하십시오. 이름을 CinemaID로 지정하십시오 (첫 번째 테이블의 기본 키 필드와 동일한 이름을 사용하십시오). Access에서이 키를 기본 키로 설정하지 마십시오. 액세스 액세스 필드에 필수 항목이며이 필드의 값은 고유해야합니다 (그렇지 않으면 요청에 위배되는 기본 테이블의 단일 레코드에 해당하는이 테이블에 여러 레코드 가있을 수 있음).
  4. 화면 수에 다른 필드를 추가하십시오.
  5. 데이터베이스 관계 관리자에서 두 테이블의 CinemaID 필드 사이에 일대 다 관계를 작성하십시오.

이제 영화관에 몇 개의 화면이 있는지 지정하려면 Cinema_Detail 테이블에 레코드를 추가하고 기본 테이블의 해당 레코드에 대한 CinemaID와 화면 수의 값을 제공하십시오.

추가 정보

궁금한 경우

그건 하지 메인 테이블에 직접 요구하고 일을 할 수있다. 액세스 필드에서 테이블에 존재하거나 존재하지 않습니다. 중간 근거가 없습니다. 액세스는 데이터베이스 엔진이므로 적절한 데이터베이스 디자인 규칙을 준수합니다.


이것은 영화가 아닌 경우에도 모든 참가작에 cinemaID가 있음을 의미합니까?
wilga

@wilga 예. 이 질문을 바탕으로 메인 테이블에 영화 기타 데이터에 대한 데이터가 있다고 올바르게 추론 합니까? 그렇다면 수정이 필요하거나 데이터베이스 사용이 점점 어려워 질 것입니다. 이에 대한 정보는 내가 링크 한 기사를 읽으십시오. (나쁜 소식을 전하는 것은 유감입니다. 한때 당신의 신발에 있었고 실수로 시험을 통해 데이터베이스 디자인에 대해 배워야했습니다).
Twisty Impersonator

주요 테이블은 다른 항목들 중에 영화를 포함하는 미디어 분류입니다. 그러나 영화관에서만 스크린 수에 대한 추가 정보를 원합니다. 다른 미디어 분류에는 화면이 없습니다.
wilga

@wilga 아마도 당신이해야 할 일은 내 대답을 구현하는 것입니다. 마지막 단락에서 언급했듯이 다른 방법은 없습니다.
Twisty Impersonator

그래서 기본적으로 2 개의 별도 테이블로 끝납니다. 1) 영화 스크린과 함께 (스크린 수를 제외하고 2) 모든 것을 포함합니다. 관계에 연결했지만이 테이블이 어떻게 상호 작용하는지 이해하지 못합니다. 매번이 세부 정보를 보려면 시네마 스크린 테이블을 열어야합니까?
wilga
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.