2009-02-04 4 views
0

몇 년 전 MS Excel에서 내 사진을 추적 할 수있는 데이터베이스를 만들었습니다. 내가 디자인 한 방식은 다음과 같다. 모든 사진에 대해 일련 번호가있는 기본 키가있는 마스터 시트가있었습니다. 그런 다음 동일한 제목의 특정 사진이 포함 된 통합 문서가 여러 장 있습니다 (예 : 풍경 (LS), 바다 풍경 (SC), 일몰 (SS) 등이 있습니다.이 시트들 각각에는 주체 키가있어서 그 사진 ID의 순서가 정해졌습니다. 새로운 사진을 입력해야 할 때 열 수있는 양식을 프로그래밍했습니다. 양식을 열면 마스터 시트의 마지막 레코드가 결정되고 기본 키가 시퀀스의 다음 번호로 증가합니다. 그런 다음 어떤 시트 (phto type - LS, SC, SS 등)를 선택하고 특정 시트의 마지막 레코드 번호를 다음 번호로 증가시켜이를 폼에 입력 할 것입니다. 그런 다음 노출 설정, 위치, 찍은 날짜, 주요 단어 등과 같은 사진에 대한 세부 정보를 입력 할 수 있습니다. 그러면 모든 정보가 마스터 시트와 특정 제목 시트에 모두 기록됩니다. 가장 우아한 것은 아니지만 그것은 나를 위해 일했습니다.Access의 다중 키?

MS Access에서 이것을 복제하고 싶지만 마스터 양식을 열 때 동시에 마스터 사진 번호와 피사체 사진 번호를 증가시키는 방법을 알아 내려고하는데 문제가 있습니다.

MS Access에서 Excel 통합 문서의 마스터 시트에있는 모든 필드가있는 마스터 테이블을 만들었습니다. 마스터와 제목 시트의 유일한 차이점은 마스터에 기본 키 (마스터 사진 번호)와 특정 사진의 제목에 대한 두 개의 추가 열이 있다는 것입니다. 다음 열에는 특정 제목 사진 번호가 있습니다. 예를 들어, 마스터 시트의 두 개의 순차 레코드는 다음과 같습니다. slideID = 1245 subject = LS subjectID = 245, slideID = 1246 subject = SS subjectID = 127. 제목 시트에서 subjectID는 유일한 고유 식별자입니다. 사진에 대한 기타 모든 관련 정보는 마스터 및 제목 시트에 복제됩니다.

MS Access에서는이 하나의 마스터 테이블이 있습니다. 사진 정보를 입력하는 데 사용하는 양식이 있습니다. 양식의 제목을 선택하면 마스터 사진 ID 번호, 현재 테이블의 기본 키가 증가하고 제목 ID 번호가 증가하도록하려면 어떻게해야합니까?

분명히하는 것이 좋겠습니다.

답변

0

형성 할 수있는 다양한 유형의 관계를 살펴 보았습니까? 예를 들어, 일대 다 (one to many) 관계. 현재 Access에서 어떤 관계를 설정 했습니까?

2

데이터를 입력하는 유일한 사람은 다른 사람이 동일한 번호를 부여 할 수 없으므로 DMax를 사용하는 것이 안전합니다. 텍스트 상자의 기본값에서 DMax를 사용할 수도 있습니다. 즉, 새 레코드를 만들 때마다 번호가 제안됩니다. 레코드가 만들어지면 제안 된 숫자가 실제 숫자가됩니다. 이 데이터베이스 설계를 배우는 의도 인 경우

=DMax("[slideID]","TableNameHere")+1 

, 테이블 정규화 할 필요가 있기 때문에, 할 필요가 더있다, 당신은 당신의 마스터 사진 테이블이 있어야한다 Fundamentals of Relational Database Design, Paul Litwin, 2003

1

읽어하실 수 있습니다 주어진 사진에 필요한 모든 정보. '풍경'만보고 싶다면 주제별로 마스터 표를 필터링하는 검색어를 만드십시오. 이렇게하면 중복 입력이 제거됩니다. 주제 테이블의 사진에 대한 모든 필드/데이터를 마스터 테이블로 이동할 수 있습니다.

사진에 피사체가 두 개 이상 있도록하려면 Photo_Subject 표가 필요합니다. 필요한 유일한 필드는 Photo_Subject_ID (자동 번호), PhotoID (마스터 테이블에서), SubjectID (또는 제목 만 입력하면됩니다.)입니다. 이렇게하면 같은 사진을 원하는만큼 여러 번 입력 할 수 있으며 원하는만큼 많은 사진을 만들 수 있습니다.중복 된 항목을 피하기 위해 PhotoID & SubjectID에 색인을 추가 할 수 있습니다. (예, Compound Primary Key를 피하는 것이 좋습니다.)