1

Тема: схема базы данных

Есть БД. Подскажите пожалуйста, как просмотреть внешние связи между таблицами. Пытаюсь создать pdf-схему не получается, ошибка
Warning: require_once(./libraries/fpdf/fpdf.php) [function.require-once]: failed to open stream: No such file or directory in z:\home\localhost\www\Tools\phpmyadmin\pdf_schema.php on line 52

Fatal error: require_once() [function.require]: Failed opening required './libraries/fpdf/fpdf.php' (include_path='.;/usr/local/php5/PEAR') in z:\home\localhost\www\Tools\phpmyadmin\pdf_schema.php on line 52

2

Re: схема базы данных

nettle
Попробуйте установить последнюю версию phpMyAdmin. У вас скрипт почему-то не находит класс для работы с pdf.

При установке свежей версии разверните расширенные таблицы и сможете работать с дизайнером связей.

3

Re: схема базы данных

Спасибо попробую.
А может надо файл конфигураций какой-нибудь отредактировать или не в этом дело? Извините если вопрос дурацкий, я только начала в нем работать и хочу на связи посмотреть, которые я создала... и че-то ничего не выходит...

4

Re: схема базы данных

nettle
Чтобы использовать Дизайнер связей необходимо развернуть расширенные таблицы. Инструкцию по установке phpMyAdmin можно посмотреть здесь: http://php-myadmin.ru/learning/instrument-pma.html

5 (изменено: nettle, 2010-03-07 18:25:12)

Re: схема базы данных

Я обновила phpmyadmin до версии 2.11.10, вкладка "дизайнер" есть , но добавить внешние связи не получается. Типы таблиц при обновлении поменялись с innodb на myisam. Я сделала запросы ALTER TABLE <ИМЯ ТАБЛИЦЫ> type=InnoDB. Запрос успешно выполняется, но смены типа не происходит. Подскажите, пожалуйста, как поменять тип таблиц?
В дизайнере когда попытаась сделать внешние связи, это у меня получилось, было сообщение типа "связь добавлена". Когда в дочернюю таблицу попыталась добавить "запретную" запись, она добавилась... Помогите, пожалуйста разобраться...

6

Re: схема базы данных

Тип таблиц должен устанавливаться с помощью параметра ENGINE. В phpMyAdmin тип таблиц можно поменять на странице "Операции".
[mono]ALTER TABLE `table_name`  ENGINE =  InnoDB;[/mono]

Без примера мне сложно сказать что вы сделали и как исправить в связях.

7 (изменено: nettle, 2010-03-09 11:25:02)

Re: схема базы данных

Спасибо - типы таблиц поменять удалось! Связи тоже сделала - создала таблицы заново (делала вроде как прежде) и получилось. Связи между таблицами ЕСТЬ, но их визуально в Дизайнере не видно. Подскажите please что надо сделать?

8

Re: схема базы данных

nettle
Если на таблицах InnoDB есть связи, то в Дизайнере они должны отобразиться автоматически.

У вас в Дизайнер выводятся таблицы, но без связей? Если так, то покажите пример структуры двух связанных таблиц.

9 (изменено: nettle, 2010-03-16 11:44:00)

Re: схема базы данных

users
id_user int(11)  {PK}, auto_inc         
  a text                  
  b text                
  c text                
  id_status int(11) 

passwords
id_user int(11) {PK}
  l text             
  p text           
  e text

statuses
id_status int(11) {PK}, auto_inc          
  s text

Есть связь users.id_user->passwords.id_user, но ее не видно в Дизайнере. А связь statuses.id_status->users.id_status, вообще не создается (пишется "Loading... 99%") ... хотя я ее создаю точно так же как и предыдущую

10

Re: схема базы данных

nettle
Так мне не ясна структура таблицы, нужен запрос вида CREATE TABLE (связи будут в ALTER TABLE). Вы можете посмотреть его перейдя на страницу экспорта и создав текстовый дамп убрав предварительно галочку в блоке "Данные".

11 (изменено: nettle, 2010-03-17 12:40:57)

Re: схема базы данных

-- Версия сервера: 4.1.16
-- Версия PHP: 5.1.6

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

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

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

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

CREATE TABLE `passwords` (
  `id_user` int(11) NOT NULL default '0',
  `l` text NOT NULL,
  `p` text NOT NULL,
  `e` text NOT NULL,
  PRIMARY KEY  (`id_user`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1251;

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

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

CREATE TABLE `statuses` (
  `id_status` int(11) NOT NULL auto_increment,
  `s` text NOT NULL,
  PRIMARY KEY  (`id_status`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1251 AUTO_INCREMENT=3 ;

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

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

CREATE TABLE `users` (
  `id_user` int(11) NOT NULL auto_increment,
  `a` text NOT NULL,
  `b` text NOT NULL,
  `c` text NOT NULL,
  `id_status` int(11) NOT NULL default '0',
  PRIMARY KEY  (`id_user`),
  KEY `id_status` (`id_status`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1251 AUTO_INCREMENT=2 ;

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

--
-- Ограничения внешнего ключа таблицы `passwords`
--
ALTER TABLE `passwords`
  ADD CONSTRAINT `passwords_ibfk_1` FOREIGN KEY (`id_user`) REFERENCES `users` (`id_user`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Ограничения внешнего ключа таблицы `users`
--
ALTER TABLE `users`
  ADD CONSTRAINT `users_ibfk_1` FOREIGN KEY (`id_status`) REFERENCES `statuses` (`id_status`);

P.S. Hanut, при помощи запроса alter table нужную связь я создала. Спасибо, что подсказали, как запрос на создание таблицы можно посмотреть!!! Остается вопрос: почему связей не видно в Дизайнере? Это немного неудобно просто...

12

Re: схема базы данных

nettle
Импортировал ваши таблицы, связи есть. В чем у вас проблема мне пока не понятно. Сами таблицы в Дизайнере есть, а связей вы не видите? Можете показать как это у вас выглядит?
http://i2.fastpic.ru/thumb/2010/0317/db/4391690a7f444a1f8550cf9d42ac0ddb.jpeg

13

Re: схема базы данных

У меня такая же проблема. Можете и мне с этим помочь??

14

Re: схема базы данных

ir4ik) сказал:

У меня такая же проблема. Можете и мне с этим помочь??

Разумеется, постараемся помочь. Опишите проблему и при необходимости предоставьте структуру таблиц, если вопрос связан с их связью.

15 (изменено: ir4ik), 2011-06-09 00:04:21)

Re: схема базы данных

во вкладке дизайн не отображаются связи. вот  с база:

-- phpMyAdmin SQL Dump
-- version 3.2.3
--
-- Host: localhost
-- Generation Time: Jun 09, 2011 at 12:02 AM
-- Server version: 5.1.40
-- PHP Version: 5.3.3

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Database: `voute`
--

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

--
-- Table structure for table `gorod`
--

CREATE TABLE IF NOT EXISTS `gorod` (
  `id` int(255) NOT NULL AUTO_INCREMENT,
  `gorod` varchar(255) COLLATE cp1251_bin NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 COLLATE=cp1251_bin AUTO_INCREMENT=57 ;

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

--
-- Table structure for table `izbir`
--

CREATE TABLE IF NOT EXISTS `izbir` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `fio` varchar(255) CHARACTER SET cp1251 COLLATE cp1251_bin NOT NULL,
  `propiska` varchar(255) CHARACTER SET cp1251 COLLATE cp1251_bin NOT NULL,
  `seria_number` varchar(255) CHARACTER SET cp1251 COLLATE cp1251_bin NOT NULL,
  `data_rogdenia` date NOT NULL,
  `login` varchar(255) CHARACTER SET cp1251 COLLATE cp1251_bin NOT NULL,
  `pass` varchar(255) CHARACTER SET cp1251 COLLATE cp1251_bin NOT NULL,
  `id_gorod` int(11) NOT NULL,
  `id_oblast` int(11) NOT NULL,
  `email` text NOT NULL,
  `golos` tinyint(1) NOT NULL,
  `reg` int(11) NOT NULL,
  `gen_code` varchar(32) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=137 ;

--
-- Table structure for table `kandidatu`
--

CREATE TABLE IF NOT EXISTS `kandidatu` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `images` varchar(40) DEFAULT NULL,
  `part` text NOT NULL,
  `result` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=6 ;

--
-- Table structure for table `oblast`
--

CREATE TABLE IF NOT EXISTS `oblast` (
  `id` int(255) NOT NULL AUTO_INCREMENT,
  `oblast` varchar(255) COLLATE cp1251_bin NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 COLLATE=cp1251_bin AUTO_INCREMENT=26 ;

--
-- Table structure for table `rsa`
--

CREATE TABLE IF NOT EXISTS `rsa` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `code` text NOT NULL,
  `i` varchar(32) NOT NULL,
  `v` int(11) NOT NULL,
  `d` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=46 ;

16

Re: схема базы данных

я в базах данных не разбираюсь. Мне сказали что с помощью чего то их рисовать надо. Помогите пожалуйста!

17

Re: схема базы данных

Чтобы связать таблицу gorod и таблицу izbir необходимо в Дизайнере нажать кнопку "Создать связь", выбрать ссылочный ключ gorod.id, затем выбрать внешний ключ izbir.id_gorod и создать связь. Вторым, необязательным, этапом необходимо выбрать отображаемый столбец, для чего нажмите кнопку "Выбор отображаемого столбца" и в таблице gorod нажмите на поле gorod, которое должно выделиться розовым цветом. По созданию связи - это все. Остальные таблицы свяжите таким же образом. Если будут вопросы - спрашивайте.