Моя проблема в том, что мне нужно создать таблицу, которая будет иметь внешние ключи, и один из трех внешних ключей должен быть NOT NULL, а остальные должны быть NULL.Есть ли что-нибудь в MySQL, чтобы решить это?Майкл.
Избегайте обнуляемых внешних ключей - у них есть ряд проблем и недостатков. Как правило, проще и лучше размещать эти столбцы в отдельных таблицах, чтобы вам не приходилось создавать для них пустые значения, когда значения не существует. Это должен быть подход по умолчанию: нормальная форма для каждого отдельного случая, если у вас нет особых причин объединять три столбца в одну таблицу.
Ограничения FOREIGN KEY пример:
CREATE TABLE parent ( id INT NOT NULL, PRIMARY KEY (id) ) ENGINE=INNODB; CREATE TABLE child ( id INT, parent_id INT, INDEX par_ind (parent_id), FOREIGN KEY (parent_id) REFERENCES parent(id) ) ENGINE=INNODB;