Я собираю изображение сайта. Базовая схема довольно простая 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
!). И как только у меня будет достаточно кармы, чтобы дать вам эти бонусные очки, я буду:)