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 Bonus는 데이터베이스의 경우 "인덱스"인지 "인덱스"인지를 알려주는 사람을 가리킵니다.
후속 조치: 테이블 구조에서 구문 오류로 판명된 것을 지적해 준 Bill Karwin에게 감사드립니다(컬럼 설정 안 함).NOT NULL
괜찮으시다면NULL
!) 그리고 당신에게 보너스 포인트를 줄 수 있는 충분한 업보가 생기면, 나는 :)
이 문제를 해결하려면NULL
[외부 키]란에서tblImageFlags.resolutionTypeID
.
PS Bonus는 데이터베이스의 경우 "인덱스"인지 "인덱스"인지를 알려주는 사람을 가리킵니다.
여러 인덱스는 인덱스가 되어야 합니다.
Bryan A의 "Modern American Usage"에 따르면.Garner:
통상적인 목적에서는 인덱스가 아닌 복수의 인덱스가 바람직하다.지표는 포라나 도그마타보다는 덜 가식적이지만 그럼에도 불구하고 가식적이다.일부 작가는 수학과 과학에서처럼 기술적 맥락에서 지수를 선호한다.지수에 대한 최선의 복수는 아니지만, 지수는 "지표"라는 의미에서 허용된다.여러 인덱스의 역형성인 단수 인디스는 피하십시오.
언급URL : https://stackoverflow.com/questions/441988/mysql-foreign-key-to-allow-null
'source' 카테고리의 다른 글
이것은 안티 패턴입니까, 아니면 Vue가 파괴되었는지 여부를 검출하는 더 간단한 방법이 있습니까? (0) | 2022.09.29 |
---|---|
Eclipse "오류: 주 클래스를 찾거나 로드할 수 없습니다." (0) | 2022.09.29 |
Spring Security / SpringMVC에서 인증된 사용자를 수동으로 설정하는 방법 (0) | 2022.09.29 |
팬더에 가입하는 것과 합병하는 것의 차이점은 무엇인가요? (0) | 2022.09.29 |
Python에서 문자열 집합에서 특정 하위 문자열을 제거하는 방법은 무엇입니까? (0) | 2022.09.29 |