Составное ограничение внешнего ключа через PhpMyAdmin? - PullRequest
6 голосов
/ 16 мая 2011

Есть ли способ добавить составной (многоколонный) внешний ключ в таблицу InnoDB через интерфейс PhpMyAdmin?У меня уже есть соответствующий составной первичный ключ в целевой таблице, и я могу ограничить внешний ключ одним столбцом, но я не могу найти способ в интерфейсе сделать составной.

Table Log
- Date
- Service
PRIMARY KEY (Date,Service)

Table Issue
- Issue_Id
- Log_Date
- Log_Service
PRIMARY KEY Issue_Id
FOREIGN KEY (Log_Date=Log.Date,Log_Service=Log.Service)

Все естьуже настроен, кроме внешнего ключа;Я захожу в представление отношений PhpMyAdmin и вижу только, как настроить FK для Log.Date, а не для Log.Service вообще.

1 Ответ

2 голосов
/ 05 июля 2012

Я только что столкнулся с похожей проблемой при настройке составного внешнего ключа в phpMyAdmin, и, возможно, мое решение могло бы помочь вам.

Вот мои настройки:

My setup

Как вы можете видеть, у меня есть составной первичный ключ в моей таблице ConferenceRoom, часть которого также является внешним ключом к streetaddress в таблице Office (это может отличаться от вашей проблемы).

На этот составной первичный ключ должна ссылаться составной внешний ключ в таблице InstPicture, но проблема для меня заключалась в том, что, несмотря на то, что phpMyAdmin определил оба индекса как первичные ключи, он будет ссылаться только на столбец name в ConferenceRoom. первичный ключ, а не столбец office_streetaddress.

Здесь мне не хватало того, что я не установил связь между ConferenceRoom и Office до того, как попытался установить связь между ConferenceRoom и InstPicture. Я предполагаю, что я забыл сначала обращаться с сильными существами, как того требует методология базы данных.

Когда была определена связь между ConferenceRoom и Office, столбец office_streetaddress появился в списке проиндексированных столбцов, и на него мог ссылаться столбец conferenceroom_office_streetaddress в таблице InstPicture.

Надеюсь, это также поможет вам, возможно, попробуйте создать отдельный индекс для вашего столбца Log.Service. Или, если это FK, настройте его отношения и попробуйте снова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...