Внешний ключ MySQL, чтобы разрешить NULL?
я собираю вместе изображение веб-сайта. Базовая схема довольно проста 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
(это даже работать в ?)
Спасибо за понимание!
PS бонусные баллы тому, кто говорит мне, является ли, в случае баз данных, это "индексы" или "индексы".
следовать-вверх: спасибо Биллу Карвину за указание на то, что оказалось синтаксической ошибкой в структуре таблицы (не устанавливайте столбец в NOT NULL
если вы хотите, чтобы NULL
!). И как только у меня будет достаточно кармы, чтобы дать вам их бонусные очки, я буду :)
1 ответ:
Вы можете решить эту проблему, позволяя
NULL
в столбце внешний ключtblImageFlags.resolutionTypeID
.
PS бонусные баллы тому, кто говорит мне, является ли, в случае баз данных, это "индексы" или "индексы".
множественное число индекс должно быть индексы.
по данным "Современное Американское Использование " Брайан А. Гарнер:
для обычных целей, индексы is этот предпочтительнее множественное число, а не показатели. ... показатели, хотя и менее претенциозно, чем форумах или догматов, претенциозно все же. Некоторые писатели предпочитают показатели in технические контексты, как в математике и науки тоже. Хотя и не самый лучший множественное число для индекс,показатели is допустимые в смысле "показатели"." ... Избегайте единственного числа indice, задняя формация от множественное число показатели.