1 (изменено: dobroe_utro, 2011-05-07 08:43:54)

Тема: Не отображаются связи в designer базы данных.

Доброе всем утро.
Прошу Вас помочь мне-))))
Создала бд, и мне нужно соединить линиями таблички в designer

один раз  щелкнули на одном поле, потом на другом, с которым нужно соединить, появится окошечко
'create relation&' нажала ок. И линия не отображается.... Сорри.

2

Re: Не отображаются связи в designer базы данных.

dobroe_utro сказал:

один раз  щелкнули на одном поле, потом на другом, с которым нужно соединить

В панели инструментов нажимаем кнопку "Создать связь", после чего рядом с курсором появится надпись "Выберите ссылочный ключ", выбираемое поле ссылочного ключа должно иметь тип индекса (иконка ключика); после выбора ссылочного ключа, рядом с курсором появится надпись "Выберите внешний ключ", выбираем связываемое поле в другой таблице и линия должна появиться. Связь уже создана, но чтобы в поле внешнего ключа отображалась желаемая информация из связанной таблицы, необходимо в панели инструментов нажать кнопку "Выбор отображаемого столбца" и кликнуть по желаемому поля для отображения в первой таблице.

Если не получится, то покажите как выглядят связываемые таблицы и какие поля требуется связать.

3 (изменено: Bernet, 2011-05-17 11:54:58)

Re: Не отображаются связи в designer базы данных.

у меня та же беда( сделал всё как вы описали, но всё равно пишет Ошибка. Связь не создана
у вас тут написано http://forum.php-myadmin.ru/viewtopic.php?id=1447 что связи для таблиц MyISAM создать нельзя, то получается надо использовать только таблицы InnoDB? и связи надо задавать через дизайнер когда соединяешь таблицы графично, или всё таки через кнопку Связи->Внутренние связи? а то я не могу понять где их вообще создавать

4

Re: Не отображаются связи в designer базы данных.

Bernet сказал:

связи зависят от типа таблиц..?

Зависят в любом случае. Хотя даже не знаю что будет, если связать таблицы MyISAM и InnoDB - не пробовал.

5

Re: Не отображаются связи в designer базы данных.

Bernet сказал:

связи для таблиц MyISAM создать нельзя

Связи для таблиц MyISAM создаются с помощью специального механизма phpMyAdmin, в то время, как связи таблиц InnoDB хранятся в структуре самих таблиц. Связи можно делать для обоих типов этих таблиц.

Bernet сказал:

связи надо задавать через дизайнер когда соединяешь таблицы графично, или всё таки через кнопку Связи->Внутренние связи?

Я делаю связи только через Дизайнер. На странице связей можно более точно определить связь таблиц типа InnoDB, если это надо.

6

Re: Не отображаются связи в designer базы данных.

просто я пробовал через дизайнер сначала выбирал поле с ID (первичный ключ) потом FK (вторичный ключ) но связь не создаётся пишет 'ошибка. Связь не добавлена', вот скрин моих табличек...
http://nextsoft-obmen.at.ua/_ph/1/677919075.png

7

Re: Не отображаются связи в designer базы данных.

Bernet сказал:

ID (первичный ключ) потом FK (вторичный ключ)

Вроде все правильно.

Покажите структуры связываемых таблиц, чтобы я попробовал. Если получится, значит проблема где-то у вас.

8

Re: Не отображаются связи в designer базы данных.

Вот скрины всех трёх табличек:
http://nextsoft-obmen.at.ua/_ph/1/7048260.png
http://nextsoft-obmen.at.ua/_ph/1/774470154.png
http://nextsoft-obmen.at.ua/_ph/1/437463628.png

9

Re: Не отображаются связи в designer базы данных.

Bernet сказал:

Вот скрины всех трёх табличек

Выберите в phpMyAdmin таблицы и перейдите на страницу экспорта, где сделайте экспорт структур таблиц без данных. Нужны SQL запросы, которые будут выведены. По картинкам я не смогу сделать. smile

10

Re: Не отображаются связи в designer базы данных.

извините я просто только начал изучать это дело вот и туплю маленько wink
это оно?) Табличка1:

-- phpMyAdmin SQL Dump
-- version 2.11.4
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Май 17 2011 г., 22:25
-- Версия сервера: 5.0.51
-- Версия PHP: 5.2.5

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- База данных: `computer_shop`
--

-- --------------------------------------------------------

--
-- Структура таблицы `computer`
--

CREATE TABLE IF NOT EXISTS `computer` (
  `ID_Computer` int(10) unsigned NOT NULL auto_increment,
  `Processor` varchar(20) character set utf8 collate utf8_unicode_ci NOT NULL,
  `Chastota` double NOT NULL,
  `RAM` int(11) NOT NULL,
  `Model` varchar(20) character set utf8 collate utf8_unicode_ci NOT NULL,
  `Release_Date` date NOT NULL,
  PRIMARY KEY  (`ID_Computer`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

--
-- Дамп данных таблицы `computer`
--

табличка 2:

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- База данных: `computer_shop`
--

-- --------------------------------------------------------

--
-- Структура таблицы `firms`
--

CREATE TABLE IF NOT EXISTS `firms` (
  `ID_Firm` int(11) NOT NULL auto_increment,
  `Firm_name` varchar(30) default NULL,
  `Adres` varchar(50) default NULL,
  PRIMARY KEY  (`ID_Firm`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

--
-- Дамп данных таблицы `firms`
--

и наконец третья:)

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- База данных: `computer_shop`
--

-- --------------------------------------------------------

--
-- Структура таблицы `market_supply`
--

CREATE TABLE IF NOT EXISTS `market_supply` (
  `ID_Supply` int(10) unsigned NOT NULL auto_increment,
  `Number_comp` int(10) unsigned NOT NULL,
  `Price` int(10) unsigned NOT NULL,
  `FK_Computer` int(10) unsigned NOT NULL,
  `FK_Firms` int(10) unsigned NOT NULL,
  PRIMARY KEY  (`ID_Supply`),
  KEY `FK_Computer` (`FK_Computer`),
  KEY `FK_Firms` (`FK_Firms`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

--
-- Дамп данных таблицы `market_supply`
--


--
-- Ограничения внешнего ключа сохраненных таблиц
--

--
-- Ограничения внешнего ключа таблицы `market_supply`
--
ALTER TABLE `market_supply`
  ADD CONSTRAINT `market_supply_ibfk_1` FOREIGN KEY (`FK_Computer`) REFERENCES `computer` (`ID_Computer`) ON UPDATE NO ACTION;

11

Re: Не отображаются связи в designer базы данных.

Судя по запросам, одна связь между computer.ID_Computer и market_supply.FK_Computer у вас есть и она должна отображаться в дизайнере.

Связать firms.ID_Firm и market_supply.FK_Firms у вас не получится, потому что поля имеют разный тип данных int(10) и int(11).

Если вы заходите в phpMyAdmin не под root, то обратите внимание на права пользователя, которые должны распространяться на БД phpmyadmin, где хранятся связи таблиц.

Пока не поздно, советую сделать следующее: смените тип таблиц на MyISAM; проставьте у всех таблиц единую кодировку (сейчас кодировки перемешаны); установите связи в Дизайнере.

12

Re: Не отображаются связи в designer базы данных.

Вообщем снёс ту базу сделал заново, связи в дизайнере так и не получились, сделал просто через вкладку Связи, вроде всё нормально  спасибо Вам большое за помощь и потраченное время  smile