Если у вас есть внешний ключ со значением по умолчанию 0, это означает, что вы должны всегда поддерживать существование workOrder с идентификатором 0, как fake-workOrder для неназначенных компонентов для ссылки.Это довольно уродливый хак.
(Это предполагает, что ваш FOREIGN KEY
на самом деле является правильным, принудительным внешним ключом, что, безусловно, желательно, но не произошло бы, если бы вы, скажем, использовали MyISAM.Пример не работает для меня, так как просто говорю FOREIGN KEY
сам по себе, не указывая, какой столбец он REFERENCES
не является допустимым SQL.)
Если вам не нравятся NULL, альтернативное решениесоединение таблиц, сопоставляющих компоненты с workOrders, с ограничением UNIQUE для component_Id.