CREATE TABLE `i_k` (
`id_k`mediumint(5) NOT NULL auto_increment,
`tvr` varchar(50) default NULL,
`odr` mediumint(4) default NULL,
`sks` mediumint(4) default NULL,
PRIMARY KEY (`id_kats`)
) ENGINE=MyISAM AUTO_INCREMENT=519 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=519 ;
К ней привязаны таблицы:
К полю sks:
CREATE TABLE `i_suf` (
`id_sks` mediumint(4) NOT NULL auto_increment,
`suf` varchar(50) NOT NULL,
PRIMARY KEY (`id_suf`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=2 ;
К полю odr
CREATE TABLE `i_odr` (
`id_odr` mediumint(4) NOT NULL auto_increment,
`razdel` varchar(50) NOT NULL,
`glava` tinyint(2) NOT NULL,
PRIMARY KEY (`id_oder`)
) ENGINE=MyISAM AUTO_INCREMENT=62 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=62 ;
К полю glava таблицы i_odr:
CREATE TABLE `i_glava` (
`id_glava` smallint(2) NOT NULL auto_increment,
`glava` varchar(30) NOT NULL,
PRIMARY KEY (`id_glava`)
) ENGINE=MyISAM AUTO_INCREMENT=15 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=15 ;
Как мне кажется все сделано правильно. Т.е. таблицы связаны через индексы (INT), со своими строковымим значения(VARCHAR) и нигде не повторяются. Построенно древо из таблиц, и на нем видно, как, скажем поле sks главной таблицы является полем ключей для таблицы i_suf.
Вопрос такой, когда мне надо вытащить стрковые значения для нужного элемента, скажем последней таблицы i_glava. Мне приходится проходить долгий путь:
1. Вытащить все из главной i_k
2. Вытащить нужное из i_suf
3. Вытащть нужное из i_odr
4. Вытащить все из i_glava
Т.е. составить 4 запроса, чтоб обладать полной инфой по нужной мне строчке из главной таблицы.
Вопрос такой.
Все ли так делают??? Или я перемудрил с нормализацией???
Спустя 1 час, 9 минут, 34 секунды (13.12.2010 - 10:57) ABC написал(а):
И еще вот ругается на строчку:
пишет
Parse error: syntax error, unexpected T_CONCAT_EQUAL in Z:\home\localhost\www\Itr\Trs\port.php on line 109
Почему?
$mod=mysql_query("SELECT COUNT(`p_m`) FROM `".mysql_real_escape_string ($baz)."` WHERE `p_m`='".=mysql_real_escape_string ($_GET['model'])."'",$a_db) or die ("BD site dimage!".mysql_error());
пишет
Parse error: syntax error, unexpected T_CONCAT_EQUAL in Z:\home\localhost\www\Itr\Trs\port.php on line 109
Почему?
Спустя 24 минуты, 32 секунды (13.12.2010 - 11:21) SlavaFr написал(а):
Цитата (A.B.C. @ 13.12.2010 - 06:47) |
CREATE TABLE `i_suf` ( `id_sks` mediumint(4) NOT NULL auto_increment, `suf` varchar(50) NOT NULL, PRIMARY KEY (`id_suf`) ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=2 ; |
чето с id_suf непонятно.
2)
".=
Спустя 54 минуты, 2 секунды (13.12.2010 - 12:15) sergeiss написал(а):
Цитата (A.B.C. @ 13.12.2010 - 11:57) |
Parse error: syntax error, unexpected T_CONCAT_EQUAL in Z:\home\localhost\www\Itr\Trs\port.php on line 109 Почему? |
Потому что найди в строке, где у тебя идет '.=', и оставь только точку.
Спустя 25 минут, 41 секунда (13.12.2010 - 12:41) ABC написал(а):
sergeiss
Точно!!! Блин....
Точно!!! Блин....
Цитата |
чето с id_suf непонятно. |
...там просто опечатка
`id_suf` mediumint(4) NOT NULL auto_increment,
Спустя 3 минуты (13.12.2010 - 12:44) ABC написал(а):
SlavaFr
Спасибо...
а по архитектуре самой????
Спасибо...
а по архитектуре самой????
Спустя 1 час, 44 минуты, 29 секунд (13.12.2010 - 14:29) SlavaFr написал(а):
Цитата (A.B.C. @ 13.12.2010 - 09:44) |
а по архитектуре самой???? |
архитектура делается для определенного задания, которого в твоем сообщении я найти не смог. О каком то универсальном решении тоже тяжело судить, так как на основании названий таблиц, полей и отсуствующих коментариев не понятно вообще о чем собственоо идет речь.
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.