Я пытаюсь спроектировать структуру базы данных для моего домашнего бюджетного приложения на PHP.
При настройке внешних ключей я столкнулся с проблемой.
У меня есть 3 таблицы:
log (id, дата, tranTypeID, categoryID, описание, значение, isForecast)
категрия (id, categoryName)
тип транзакции (идентификатор, имя-транзакции)
журнал - основная запись бюджета
категория - список фиксированных категорий для записей журнала
тип транзакции - на данный момент хранится всего 2 записи: расходы, доходы
Я установил внешний ключ для tranTypeID без сбоя. При попытке сделать то же самое для categoryID по:
ALTER TABLE `log` ADD CONSTRAINT `fk_log_category` FOREIGN KEY (`categoryID`) REFERENCES `category`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
Я получаю следующую ошибку:
1452 - Невозможно добавить или обновить дочернюю строку: ограничение внешнего ключа не выполняется (budget
. #sql-1aac_349
, CONSTRAINT fk_log_category
FOREIGN KEY (categoryID
) ССЫЛКИ category
(id
))
Я настроил все движки таблиц на InnoDB, и для всех связанных столбцов был установлен точно такой же тип данных.