Отвечаю на свой же вопрос:
Задавал вопрос давно на форуме PHP MyAdmin. Если тип таблиц MyISM, то дизайнер таблиц не будет отображать связи между таблицами, так как этот тип таблиц не поддерживает связи между таблицами. Но можно вручную создать связи между этим типом таблиц, но это ни на что влиять в итоге не будет, тогда вопрос, а надо ли это? Вот в INNODB там ключи поддерживаются и сохраняется ссылочная целостность и скорость БД, поэтому там просмотреть связи можно.
Вот ссылка, где я задавал вопрос и получил очень качественный ответ от ГУРУ:
http://forum.php-myadmin.ru/viewtopic.php?pid=9584#p9584 Добавлено: В отличии от InnoDB, у таблиц типа MyISAM в структуре таблиц нет возможности для установления внешних ключей и создания связей, их можно установить только с помощью phpMyAdmin, который хранит связи в специальной рабочей таблице. Таким образом, просмотреть связи вы не можете, потому что они не установлены.
Связи устанавливаются так: выбираем первичный ключ, затем выбираем ссылочное поле, после чего устанавливается связь; следующим шагом, при необходимости, выбирается отображаемый столбец.
Добавлено: Hanut написал:
"В отличии от InnoDB, у таблиц типа MyISAM в структуре таблиц нет возможности для установления внешних ключей и создания связей, их можно установить только с помощью phpMyAdmin, который хранит связи в специальной рабочей таблице"
Vladimir54 написал:
ПАсиба величественна уважаемые Гуру!
Тогда назрели такие вопросы:
1. Имеет ли какой-либо практический смысл устанавливать связи между таблицами в типах MyISM? отразится ли это на скорости работы таких таблиц?На что повлияет?
2. Имеет ли какой-либо практический смысл устанавливать связи между таблицами в типах InnoDM?На что влияют связи в типах InnoDB?
3. Терь вопрос ближе к практике. Например, есть у меня 36 табличек MyISM с непроставленными связями. Вхожу я в любую из таблиц и далее мне нужно определить, из каких соображений выбирается первичный ключ, ссылки на внешние ключи и т.д.?
4. У меня есть движок Joomla, тип базы данных MyISM. Возможно ли выгрузить таблицы из базы MyISM новый тип таблиц InnoDB?Какие будут последствия и на чем это может отразиться?
Hanut ответил:
1. В таблицах типа MyISAM установка связей повлияет только на отображение данных в phpMyAdmin (Дизайнер и связи для выбора отображаемого столбца). Данные связи работают только в phpMyAdmin и никак не влияют на данные.
2. Связи в таблицах типа InnoDB следует устанавливать, если требуется при выполнении какого-либо действия в одной из таблиц, чтобы происходило определенное действие в связанных таблицах. Например, если связаны две таблицы и вы в первой удалите строку, то связанные с ней записи будут автоматически удалены и из второй таблицы (каскадное удаление).
3. Связи проставляются исходя из логики построения БД. К примеру, есть таблица user состоящая из полей id и name, и есть таблица message состоящая из полей user_id и text. Поля user.id и message.user_id должны иметь одинаковый тип данных и могут быть связаны, чтобы установить каждому сообщению (message) своего пользователя.
4. Сменить тип таблиц с MyISAM на InnoDB можно, но особого смысла в этом нет. Считается, что таблицы типа MyISAM лучше предназначены для создания веб-ресурсов (очень большая скорость при выборке данных из БД), а InnoDB скорее для крупных, критичных к отказоустойчивости проектов (медленнее, но надежнее). Сам Joomla от смены типа таблиц ни лучше ни хуже работать не будет.