Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Связь 3-х таблиц
 
 автор: сотка   (19.12.2011 в 20:46)   письмо автору
 
 

Привет уважаемые! подскажите как правильно связать таблицы!
1 таблица для создания каталога
CREATE TABLE system_photo_catalog (
  id_catalog int(11) NOT NULL auto_increment,
  `name` tinytext NOT NULL,
  description text NOT NULL,
  hide enum('show','hide') NOT NULL default 'show',
  pos int(11) NOT NULL,
  PRIMARY KEY  (id_catalog)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251;


2 таблица для создания раздела в каталоге

CREATE TABLE system_photo_section (
  id_section int(11) NOT NULL auto_increment,
  `name` tinytext NOT NULL,
  description text NOT NULL,
  hide enum('show','hide') NOT NULL default 'show',
  pos int(11) NOT NULL,
  PRIMARY KEY  (id_catalog)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251;

3 таблица для хранения файлов в разделах
CREATE TABLE system_photo_position (
  id_position int(11) NOT NULL auto_increment,
  `name` tinytext NOT NULL,
  alt tinytext NOT NULL,
  small tinytext NOT NULL,
  big tinytext NOT NULL,
  hide enum('show','hide') NOT NULL default 'show',
  pos int(11) NOT NULL default '0',
  id_catalog int(11) NOT NULL default '0',
  PRIMARY KEY  (id_section)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251;


нужен конечный результат: каталог1-раздел1-позиция1
позиция2
и т.д
раздел2-позиция1
и т.д
каталог2-раздел1-позиция1
и т.д -и т.д -и т.д

правильна ли связаны таблицы?

  Ответить  
 
 автор: cheops   (19.12.2011 в 20:52)   письмо автору
 
   для: сотка   (19.12.2011 в 20:46)
 

>правильна ли связаны таблицы?
А как они связаны? Я например, связи system_photo_catalog и system_photo_section что-то вообще не вижу? Как определить, что данная секция принадлежит данному каталогу?

  Ответить  
 
 автор: сотка   (19.12.2011 в 20:59)   письмо автору
 
   для: cheops   (19.12.2011 в 20:52)
 

CREATE TABLE system_photo_section ( 
  id_section int(11) NOT NULL auto_increment, 
  `name` tinytext NOT NULL, 
  description text NOT NULL, 
  hide enum('show','hide') NOT NULL default 'show', 
  pos int(11) NOT NULL, 
id_catalog int(11) NOT NULL default '0',
  PRIMARY KEY  (id_section) 
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251;

таким образом?

  Ответить  
 
 автор: cheops   (19.12.2011 в 21:05)   письмо автору
 
   для: сотка   (19.12.2011 в 20:59)
 

Да, только теперь такая заковыка, допустим есть в таблице system_photo_catalog запись с номером 1 и в таблице system_photo_section есть запись с номером 1 и в таблице system_photo_position есть запись для которой справедливо id_catalog = 1. Так вот эта запись кому принадлежит? Каталогу из system_photo_catalog или из system_photo_section? Или каталоги из system_photo_section могут иметь только подчиненные секции?

  Ответить  
 
 автор: сотка   (19.12.2011 в 21:11)   письмо автору
 
   для: cheops   (19.12.2011 в 21:05)
 

CREATE TABLE system_photo_position ( 
  id_position int(11) NOT NULL auto_increment, 
  `name` tinytext NOT NULL, 
  alt tinytext NOT NULL, 
  small tinytext NOT NULL, 
  big tinytext NOT NULL, 
  hide enum('show','hide') NOT NULL default 'show', 
  pos int(11) NOT NULL default '0', 
  id_catalog int(11) NOT NULL default '0', 
  id_section int(11) NOT NULL default '0', 
  PRIMARY KEY  (id_section) 
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251;

исправляем таким образом?
эта строка разве может быть такой???
id_catalog int(11) NOT NULL default '0',  
  id_section int(11) NOT NULL default '0', 

  Ответить  
 
 автор: cheops   (19.12.2011 в 21:14)   письмо автору
 
   для: сотка   (19.12.2011 в 21:11)
 

>исправляем таким образом?
В зависимости от того, что хотите получить.
>эта строка разве может быть такой???
А что смущает?

  Ответить  
 
 автор: сотка   (19.12.2011 в 21:17)   письмо автору
 
   для: cheops   (19.12.2011 в 21:14)
 

хочу получить так- католог1 в нем например 5 разделов в разделы заливаю файлы!католог2 в нем например 10 разделов в разделы заливаю файлы

в каталоге файлы присутствовать не будут только разделы, в разделе католог присутствовать не будет только файлы! Возможно объясняю очень запутанно...

  Ответить  
 
 автор: сотка   (20.12.2011 в 09:18)   письмо автору
 
   для: cheops   (19.12.2011 в 21:14)
 

спасибо большое! теперь понятно принцип работы таблиц!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования