NULL을 허용하는 MySQL 외래 키?
저는 이미지 웹 사이트를 연결하고 있습니다. 기본 스키마는 매우 간단한 MySQL이지만 이미지와 관련된 가능한 관리 플래그 ( "부적절", "저작권"등)를 모든 문제가 있습니다. 내 현재 생각은 다음과 가변합니다.
tblImages (
imageID INT UNSIGNED NOT NULL AUTO_INCREMENT,
...
);
tblImageFlags (
imageFlagID INT UNSIGNED NOT NULL AUTO_INCREMENT,
imageID INT UNSIGNED NOT NULL,
flagTypeID INT UNSIGNED NOT NULL,
resolutionTypeID INT UNSIGNED NOT NULL,
...
);
luResolutionTypes (
resolutionTypeID INT UNSIGNED NOT NULL AUTO_INCREMENT,
resolutionType VARCHAR(63) NOT NULL,
...
);
(읽기 쉽도록 잘림; 여러 외래 키와 색인이 순서대로 정렬되어 있습니다.)
tblImageFlags.flagTypeID
외국 키가 플래그 유형의 조회 테이블에, 그리고 당신이 상상할 수있는 그대로 tblImageFlags.resolutionTypeID
해야 외국 키가 있음 luResolutionTypes.resolutionTypeID
. 당면한 문제는 플래그가 처음 발행 될 때 해결 될 때 사용 가능한 것입니다 (이를 잘 사용하는 것입니다 NULL
). 그러나 값이 설정 되어야만 외래 키가 지정되어야합니다.
이 상황에 대한 MySQL 구문 해결 방법을 수 없습니다. 존재합니까? 최고의 준우승자는 다음과 가변적이다.
- "조정되지 않은"해결 유형 추가
- 에
NULL
항목을 추가합니다luResolutionTypes.resolutionTypeID
(AUTO_INCREMENT
열 에서도 작동 합니까?).
정렬에 감사드립니다!
PS 보너스는 데이터베이스의 경우 "인덱스"인지 "인덱스"인지 알려주는 사람을 가리습니다.
후속 조치 : 테이블 구조에서 구문 오류로 판명 된 것을 지적한 Bill Karwin에게 감사합니다 ( NOT NULL
허용 다음 열을 설정하지 않습니다 NULL
!). 그리고 일단 당신에게 그 보너스 포인트를 줄 충분한 카르마가 있으면, 나는 할 것입니다 :)
NULL
외래 키 열 을 허용하여 문제를 해결할 수 있습니다 tblImageFlags.resolutionTypeID
.
PS 보너스는 데이터베이스의 경우 "인덱스"인지 "인덱스"인지 알려주는 사람을 가리습니다.
의 복수 인덱스 는 인덱스 여야 합니다 .
Bryan A. Garner의 " Modern American Usage "에 따르면 :
일반 목적을 위해, 인덱스는 바람직한 복수 아닌 인덱스 . ... 지수보다 적지 허세 포럼 또는 dogmata는 , 그럼에도 불구하고 허세입니다. 작가 일부 는 수학과 과학에서와 같이 기술적 맥락에서 인덱스 를 선호합니다 . 에없는 최고의 복수 제안 지수 , 지수는 점에서 허용된다 "지표." ... 단수 피 indice ,에서 다시 형성 복수 인덱스를 .
참고 URL : https://stackoverflow.com/questions/441988/mysql-foreign-key-to-allow-null
'ProgramingTip' 카테고리의 다른 글
const, let 및 var의 v8 JavaScript 성능 영향? (0) | 2020.11.21 |
---|---|
이벤트 처리기를 등록 취소하는 방법 (0) | 2020.11.21 |
취소하지 않는 것이 나쁜가요? (0) | 2020.11.21 |
열 너비가 고정 된 LaTeX 테이블의 셀 내용을 중앙에 배치하는 방법은 무엇입니까? (0) | 2020.11.21 |
Android 웹 애플리케이션 구성 (0) | 2020.11.21 |