참조 무결성 문제(access 2007)

참조 무결성 문제(access 2007)

데이터베이스 디자이너나 관리자 등 전문가의 도움을 요청합니다.

두 테이블에 대한 참조 무결성을 설정하는 데 이 문제가 발생했습니다. 참조 무결성 설정은 문제가 아니지만 문제는 이 참조 무결성 설정이 완료되면 다른 테이블에서 null 값을 허용하지 않는다는 것입니다. 이는 두 테이블 모두 아마도 동일한 번호를 포함해야 함을 의미합니다. 두 테이블이 일치하도록 만드는 행

이것은 내가 하고 싶은 일의 정확한 예입니다.

  • 매장에서 구입할 수 있는 상품이나 액세서리를 저장하기 위한 "Stock"이라는 테이블과 "Customer_Details"라는 다른 테이블을 만들고 있습니다.
  • 두 필드(예: "가용성"이라는 필드)에 예/아니요 데이터 유형이 될 필드를 설정하고 싶습니다. 이 필드는 두 필드 모두에 있어야 합니다.
  • 고객이 "재고" 테이블에서 선택한 특정 액세서리를 구매할 때마다 재고의 "가용성" 필드 값이 자동으로 변경됩니다.

내가 알고 있고 하려고 노력한 것은 관계 창에서 참조 무결성을 설정하는 것뿐이지만 안타깝게도 이 방법은 작동하지 않습니다.

저는 2007에 처음 접속하기 때문에 이 문제를 해결하는 방법을 알려줄 수 있는 사람을 친절하게 찾고 있습니다.

답변1

"내가 겪고 있는 문제는 이 참조 무결성 설정을 완료하면 다른 테이블에서 null 값을 허용하지 않는다는 것입니다."

Nul값이 허용되지만 제한사항이 있습니다.

그러나 외래 키에 Null 값을 입력할 수 있습니다. 이는 레코드가 관련되지 않음을 지정합니다. 예를 들어, 존재하지 않는 고객에게 주문을 할당할 수 없습니다. 그러나 CustomerID 필드에 Null 값을 입력하면 누구에게도 할당되지 않은 주문이 있을 수 있습니다.


원천Access 데이터베이스의 테이블 간 관계를 정의하는 방법

참조 무결성

참조 무결성은 관련 테이블의 레코드 간 관계가 유효한지 확인하고 관련 데이터를 실수로 삭제하거나 변경하지 않도록 하기 위해 Access에서 사용하는 규칙 시스템입니다. 다음 조건이 모두 충족되면 참조 무결성을 설정할 수 있습니다.

  • 기본 테이블의 일치하는 필드가 기본 키이거나 고유 인덱스를 가지고 있습니다.
  • 관련 필드의 데이터 유형은 동일합니다. 두 가지 예외가 있습니다. 일련 번호 필드는 Long Integer의 FieldSize 속성 설정이 있는 숫자 필드와 연결될 수 있고, 복제 ID의 FieldSize 속성 설정이 있는 일련 번호 필드는 복제 ID의 FieldSize 속성 설정이 있는 숫자 필드와 관련될 수 있습니다.
  • 두 테이블 모두 동일한 Access 데이터베이스에 속합니다. 테이블이 연결된 테이블인 경우 Access 형식의 테이블이어야 하며 참조 무결성을 설정하려면 해당 테이블이 저장된 데이터베이스를 열어야 합니다. 다른 형식의 데이터베이스에서 연결된 테이블에 대해서는 참조 무결성을 적용할 수 없습니다.

참조 무결성을 사용할 때 다음 규칙이 적용됩니다.

  • 기본 테이블의 기본 키에 존재하지 않는 값을 관련 테이블의 외래 키 필드에 입력할 수 없습니다. 그러나 외래 키에 Null 값을 입력할 수 있습니다. 이는 레코드가 관련되지 않음을 지정합니다. 예를 들어, 존재하지 않는 고객에게 주문을 할당할 수 없습니다. 그러나 CustomerID 필드에 Null 값을 입력하면 누구에게도 할당되지 않은 주문이 있을 수 있습니다.
  • 관련 테이블에 일치하는 레코드가 있는 경우 기본 테이블에서 레코드를 삭제할 수 없습니다. 예를 들어, "주문" 테이블에서 직원에게 할당된 주문이 있는 경우 "직원" 테이블에서 직원 레코드를 삭제할 수 없습니다.
  • 해당 레코드에 관련 레코드가 있는 경우 기본 테이블의 기본 키 값을 변경할 수 없습니다. 예를 들어, "주문" 테이블에 해당 직원에게 할당된 주문이 있는 경우 "직원" 테이블에서 해당 직원의 ID를 변경할 수 없습니다.

관련 정보