Подтвердить что ты не робот

Внешний ключ 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 (будет ли это работать даже в столбце AUTO_INCREMENT?)

Спасибо за понимание!

PS Бонус указывает, кто скажет мне, будет ли в случае баз данных "индексы" или "индексы".


Последующее наблюдение: благодаря Биллу Карвину за то, что оказалось синтаксической ошибкой в ​​структуре таблицы (не устанавливайте столбец NOT NULL, если вы хотите, чтобы он разрешал NULL!). И как только у меня будет достаточно кармы, чтобы дать вам эти бонусные очки, я буду:)

4b9b3361

Ответ 1

Вы можете решить эту проблему, разрешив NULL в столбце внешнего ключа tblImageFlags.resolutionTypeID.


PS Бонус указывает, кто скажет мне, будет ли в случае баз данных "индексы" или "индексы".

Множество индексов должно быть индексом.

В соответствии с "" Современное американское использование" Брайана А. Гарнера:

Для обычных целей индексы предпочтительное множественное число, а не индексы.... Индексы, хотя и менее претенциозные, чем фоны или догматы, все же претенциозно. Некоторые авторы предпочитают индексы в технических контекстов, как в математике и науки. Хотя и не самый лучший множественное число для индекса, индексы допустимо в смысле "индикаторы".... Избегайте сингулярных индексов, обратного образования из множественных индексов.