1. Таблица статической информации, которая меняется/добавляется очень редко.
Код: Выделить всё
CREATE TABLE `gs_udb_static` (
`id` int(10) unsigned NOT NULL auto_increment,
`group` varchar(255) NOT NULL default '',
`text` varchar(255) NOT NULL default '',
`comment` text NOT NULL,
`status` int(1) default '1',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=19;
INSERT INTO `gs_udb_static` VALUES (1, 'g_NC_speed', '10/100 Mbt/s', '', 1);
INSERT INTO `gs_udb_static` VALUES (2, 'g_NC_speed', '10 Mbt/s', '', 1);
INSERT INTO `gs_udb_static` VALUES (17, 'g_NC_company', 'Compex', '', 1);
INSERT INTO `gs_udb_static` VALUES (4, 'g_WHO', 'Alan Vezhbitskis', '', 1);
INSERT INTO `gs_udb_static` VALUES (5, 'g_WHO', 'Jurij Burlov', '', 1);
INSERT INTO `gs_udb_static` VALUES (6, 'g_WHO', 'Romualdas Jokubavičius', '', 1);
INSERT INTO `gs_udb_static` VALUES (12, 'g_WHERE', 'Mokykla 513', '', 1);
INSERT INTO `gs_udb_static` VALUES (13, 'g_WHERE', 'Mokykla 013', '', 1);
INSERT INTO `gs_udb_static` VALUES (14, 'g_NC_slot', 'ISA', '', 1);
INSERT INTO `gs_udb_static` VALUES (15, 'g_NC_slot', 'PCI', '', 1);
INSERT INTO `gs_udb_static` VALUES (16, 'g_NC_company', 'Realtek', '', 1);
INSERT INTO `gs_udb_static` VALUES (18, 'g_NC_chip', 'RTL8029', '', 1);2. Таблица сетевых карт
Код: Выделить всё
CREATE TABLE `gs_udb_nc` (
`id` int(10) unsigned NOT NULL auto_increment,
`where_id` int(10) default '0',
`who_id` int(10) default '0',
`parent_id` int(10) default '0',
`inv` varchar(255) default '',
`speed_id` int(10) default '0',
`slot_id` int(10) default '0',
`chip_id` int(10) default '0',
`company_id` int(10) NOT NULL default '0',
`garantija_id` int(10) default '0',
`comment` text,
`status` int(1) default '1',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=3;
INSERT INTO `gs_udb_nc` VALUES (1, 12, 4, 0, 'INV123231', 1, 14, 18, 17, 0, 'bububu', 1);
INSERT INTO `gs_udb_nc` VALUES (2, 12, 6, 0, 'INV0600191P', 1, 15, 18, 16, 0, 'blablabla', 1);В таблице 2 в полях where_id, who_id, speed_id, slot_id, chip_id и company_id хранятся id из таблицы 1
Надо реализовать простейщую связанную таблицу, тоесть вытащить:
Код: Выделить всё
gs_udb_nc.id,
gs_udb_nc.inv,
gs_udb_static.text (где gs_udb_nc.where_id=gs_udb_static.id,
gs_udb_static.text (где gs_udb_nc.speed_id=gs_udb_static.id,
gs_udb_static.text (где gs_udb_nc.slot_id=gs_udb_static.id,
gs_udb_static.text (где gs_udb_nc.chip_id=gs_udb_static.id,
gs_udb_static.text (где gs_udb_nc.company_id=gs_udb_static.id,
gs_udb_nc.statusНо проблема заключается в том что я использую как конектор между базой и SQL запросом AdoDB (http://adodb.sourceforge.net), а он ,как я понял, не умеет работать с временными таблицами и понимает только стандартный SQL (тоесть который будет одинакого работать и на PosrgresSql и на MySQL ...)
Вместо временной таблицы я решил использовать статическую таблицу (записей будет не так уж и много, гдето 50 таблиц в которых по 500-1000 записей) и из этих 50 таблиц будет выборка гдето в 10, тоесть временных таблиц нужно около 10.
вот пример временной таблицы для gs_udb_nc
Код: Выделить всё
CREATE TABLE `temp_nc` (
`id` int(10) default '0',
`inv` varchar(255) default '',
`where_id` varchar(255) default '',
`speed_id` varchar(255) default '',
`slot_id` varchar(255) default '',
`chip_id` varchar(255) default '',
`company_id` varchar(255) default '',
`status` int(1) default '1'
) TYPE=MyISAM;Но если можно обойтись без нее будет вообще замечательно.