Kod
--
-- Struktura tabeli dla `mzk_cms_autobusy`
--
CREATE TABLE `mzk_cms_autobusy` (
`id` smallint(5) unsigned NOT NULL auto_increment,
`alias` varchar(100) collate utf8_polish_ci default NULL COMMENT 'unikalny alias autobusu',
`nazwa` varchar(100) collate utf8_polish_ci default NULL COMMENT 'nazwa autobusu, np.: numer',
`opis` text collate utf8_polish_ci COMMENT 'opis autobusu',
PRIMARY KEY (`id`),
UNIQUE KEY `UNIQUE` (`alias`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci COMMENT='Tabela z autobusami' AUTO_INCREMENT=9;
-- --------------------------------------------------------
--
-- Struktura tabeli dla `mzk_cms_godziny`
--
CREATE TABLE `mzk_cms_godziny` (
`id` smallint(5) unsigned NOT NULL auto_increment,
`oid` smallint(5) unsigned default '0' COMMENT 'id odjazdu',
`pid` smallint(5) unsigned default '0' COMMENT 'id przystanku',
`godzina` mediumint(8) unsigned default '0',
PRIMARY KEY (`id`),
KEY `ODJAZDY` (`oid`),
KEY `PRZYSTANKI` (`pid`),
KEY `Godzina` (`godzina`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci COMMENT='godzina przyjazdu na przystanek' AUTO_INCREMENT=2629;
-- --------------------------------------------------------
--
-- Struktura tabeli dla `mzk_cms_kierunki`
--
CREATE TABLE `mzk_cms_kierunki` (
`id` smallint(5) unsigned NOT NULL auto_increment,
`alias` varchar(100) collate utf8_polish_ci default NULL COMMENT 'alias kursu',
`nazwa` varchar(100) collate utf8_polish_ci default NULL COMMENT 'nazwa kursu',
PRIMARY KEY (`id`),
UNIQUE KEY `alias` (`alias`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci COMMENT='kierunki jazdy' AUTO_INCREMENT=12;
-- --------------------------------------------------------
--
-- Struktura tabeli dla `mzk_cms_kursy`
--
CREATE TABLE `mzk_cms_kursy` (
`id` smallint(5) unsigned NOT NULL auto_increment,
`aid` smallint(5) unsigned default '0' COMMENT 'id autobusu',
`kid` smallint(5) unsigned default '0' COMMENT 'id kierunku',
`przystanki` text collate utf8_polish_ci,
`waznosc` timestamp NOT NULL default CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `AUTOBUSY` (`aid`),
KEY `KIERUNKI` (`kid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci COMMENT='kursy autobusów' AUTO_INCREMENT=15;
-- --------------------------------------------------------
--
-- Struktura tabeli dla `mzk_cms_legenda`
--
CREATE TABLE `mzk_cms_legenda` (
`id` smallint(5) unsigned NOT NULL auto_increment,
`skrot` varchar(5) collate utf8_polish_ci default NULL,
`opis` text collate utf8_polish_ci,
PRIMARY KEY (`id`),
UNIQUE KEY `skrot` (`skrot`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=8;
-- --------------------------------------------------------
--
-- Struktura tabeli dla `mzk_cms_legenda_odjazdy`
--
CREATE TABLE `mzk_cms_legenda_odjazdy` (
`id` smallint(5) unsigned NOT NULL auto_increment,
`oid` smallint(5) unsigned default '0' COMMENT 'id odjazdu',
`lid` smallint(5) unsigned default '0' COMMENT 'id skrótu w legendzie',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=268;
-- --------------------------------------------------------
--
-- Struktura tabeli dla `mzk_cms_odjazdy`
--
CREATE TABLE `mzk_cms_odjazdy` (
`id` smallint(5) unsigned NOT NULL auto_increment,
`nazwa` varchar(100) collate utf8_polish_ci default NULL,
`tid` smallint(5) unsigned default '0' COMMENT 'id trasy',
`dni` set('1','2','3','4','5','6','7') collate utf8_polish_ci NOT NULL,
PRIMARY KEY (`id`),
KEY `TRASY` (`tid`),
KEY `DNI` (`dni`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci COMMENT='Odjazdy autobusów' AUTO_INCREMENT=187;
-- --------------------------------------------------------
--
-- Struktura tabeli dla `mzk_cms_przystanki`
--
CREATE TABLE `mzk_cms_przystanki` (
`id` smallint(5) unsigned NOT NULL auto_increment,
`alias` varchar(100) collate utf8_polish_ci default NULL COMMENT 'lias przystanku',
`nazwa` varchar(100) collate utf8_polish_ci default NULL COMMENT 'nazwa przystanku',
`x` float unsigned default NULL COMMENT 'szerokość geograficzna przystanku',
`y` float unsigned default NULL COMMENT 'długość geograficzna przystanku',
PRIMARY KEY (`id`),
UNIQUE KEY `UNIQUE` (`alias`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci COMMENT='przystanki autobusowe' AUTO_INCREMENT=63;
-- --------------------------------------------------------
--
-- Struktura tabeli dla `mzk_cms_trasy`
--
CREATE TABLE `mzk_cms_trasy` (
`id` smallint(5) unsigned NOT NULL auto_increment,
`kid` smallint(5) unsigned default '0' COMMENT 'id kursu',
`przystanki` text collate utf8_polish_ci COMMENT 'przystanki przez które jeżdżą autobusy w formie |1|2|3|',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci COMMENT='trasy, którymi jedzie autobus' AUTO_INCREMENT=44;
-- Struktura tabeli dla `mzk_cms_autobusy`
--
CREATE TABLE `mzk_cms_autobusy` (
`id` smallint(5) unsigned NOT NULL auto_increment,
`alias` varchar(100) collate utf8_polish_ci default NULL COMMENT 'unikalny alias autobusu',
`nazwa` varchar(100) collate utf8_polish_ci default NULL COMMENT 'nazwa autobusu, np.: numer',
`opis` text collate utf8_polish_ci COMMENT 'opis autobusu',
PRIMARY KEY (`id`),
UNIQUE KEY `UNIQUE` (`alias`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci COMMENT='Tabela z autobusami' AUTO_INCREMENT=9;
-- --------------------------------------------------------
--
-- Struktura tabeli dla `mzk_cms_godziny`
--
CREATE TABLE `mzk_cms_godziny` (
`id` smallint(5) unsigned NOT NULL auto_increment,
`oid` smallint(5) unsigned default '0' COMMENT 'id odjazdu',
`pid` smallint(5) unsigned default '0' COMMENT 'id przystanku',
`godzina` mediumint(8) unsigned default '0',
PRIMARY KEY (`id`),
KEY `ODJAZDY` (`oid`),
KEY `PRZYSTANKI` (`pid`),
KEY `Godzina` (`godzina`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci COMMENT='godzina przyjazdu na przystanek' AUTO_INCREMENT=2629;
-- --------------------------------------------------------
--
-- Struktura tabeli dla `mzk_cms_kierunki`
--
CREATE TABLE `mzk_cms_kierunki` (
`id` smallint(5) unsigned NOT NULL auto_increment,
`alias` varchar(100) collate utf8_polish_ci default NULL COMMENT 'alias kursu',
`nazwa` varchar(100) collate utf8_polish_ci default NULL COMMENT 'nazwa kursu',
PRIMARY KEY (`id`),
UNIQUE KEY `alias` (`alias`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci COMMENT='kierunki jazdy' AUTO_INCREMENT=12;
-- --------------------------------------------------------
--
-- Struktura tabeli dla `mzk_cms_kursy`
--
CREATE TABLE `mzk_cms_kursy` (
`id` smallint(5) unsigned NOT NULL auto_increment,
`aid` smallint(5) unsigned default '0' COMMENT 'id autobusu',
`kid` smallint(5) unsigned default '0' COMMENT 'id kierunku',
`przystanki` text collate utf8_polish_ci,
`waznosc` timestamp NOT NULL default CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `AUTOBUSY` (`aid`),
KEY `KIERUNKI` (`kid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci COMMENT='kursy autobusów' AUTO_INCREMENT=15;
-- --------------------------------------------------------
--
-- Struktura tabeli dla `mzk_cms_legenda`
--
CREATE TABLE `mzk_cms_legenda` (
`id` smallint(5) unsigned NOT NULL auto_increment,
`skrot` varchar(5) collate utf8_polish_ci default NULL,
`opis` text collate utf8_polish_ci,
PRIMARY KEY (`id`),
UNIQUE KEY `skrot` (`skrot`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=8;
-- --------------------------------------------------------
--
-- Struktura tabeli dla `mzk_cms_legenda_odjazdy`
--
CREATE TABLE `mzk_cms_legenda_odjazdy` (
`id` smallint(5) unsigned NOT NULL auto_increment,
`oid` smallint(5) unsigned default '0' COMMENT 'id odjazdu',
`lid` smallint(5) unsigned default '0' COMMENT 'id skrótu w legendzie',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=268;
-- --------------------------------------------------------
--
-- Struktura tabeli dla `mzk_cms_odjazdy`
--
CREATE TABLE `mzk_cms_odjazdy` (
`id` smallint(5) unsigned NOT NULL auto_increment,
`nazwa` varchar(100) collate utf8_polish_ci default NULL,
`tid` smallint(5) unsigned default '0' COMMENT 'id trasy',
`dni` set('1','2','3','4','5','6','7') collate utf8_polish_ci NOT NULL,
PRIMARY KEY (`id`),
KEY `TRASY` (`tid`),
KEY `DNI` (`dni`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci COMMENT='Odjazdy autobusów' AUTO_INCREMENT=187;
-- --------------------------------------------------------
--
-- Struktura tabeli dla `mzk_cms_przystanki`
--
CREATE TABLE `mzk_cms_przystanki` (
`id` smallint(5) unsigned NOT NULL auto_increment,
`alias` varchar(100) collate utf8_polish_ci default NULL COMMENT 'lias przystanku',
`nazwa` varchar(100) collate utf8_polish_ci default NULL COMMENT 'nazwa przystanku',
`x` float unsigned default NULL COMMENT 'szerokość geograficzna przystanku',
`y` float unsigned default NULL COMMENT 'długość geograficzna przystanku',
PRIMARY KEY (`id`),
UNIQUE KEY `UNIQUE` (`alias`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci COMMENT='przystanki autobusowe' AUTO_INCREMENT=63;
-- --------------------------------------------------------
--
-- Struktura tabeli dla `mzk_cms_trasy`
--
CREATE TABLE `mzk_cms_trasy` (
`id` smallint(5) unsigned NOT NULL auto_increment,
`kid` smallint(5) unsigned default '0' COMMENT 'id kursu',
`przystanki` text collate utf8_polish_ci COMMENT 'przystanki przez które jeżdżą autobusy w formie |1|2|3|',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci COMMENT='trasy, którymi jedzie autobus' AUTO_INCREMENT=44;
Do wyszukiwania konkretnych autobusów wykorzystuje takie zapytanie:
Kod
SELECT `g` . * , `o`.`dni`
FROM `mzk_cms_godziny` AS `g`
LEFT JOIN `mzk_cms_przystanki` AS `p` ON `p`.`id` = `g`.`pid`
LEFT JOIN `mzk_cms_odjazdy` AS `o` ON `o`.`id` = `g`.`oid`
LEFT JOIN `mzk_cms_trasy` AS `t` ON `t`.`id` = `o`.`tid`
LEFT JOIN `mzk_cms_kursy` AS `k` ON `k`.`id` = `t`.`kid`
LEFT JOIN `mzk_cms_kierunki` AS `ki` ON `ki`.`id` = `k`.`kid`
LEFT JOIN `mzk_cms_autobusy` AS `a` ON `a`.`id` = `k`.`aid`
WHERE (
`t`.`przystanki` LIKE '%|16|%|6|%'
)
AND (
`o`.`dni` LIKE '%1%'
)
AND (
`g`.`pid` =16
)
AND (
`godzina`
BETWEEN 72600
AND 73200
)
ORDER BY `g`.`godzina` ASC
FROM `mzk_cms_godziny` AS `g`
LEFT JOIN `mzk_cms_przystanki` AS `p` ON `p`.`id` = `g`.`pid`
LEFT JOIN `mzk_cms_odjazdy` AS `o` ON `o`.`id` = `g`.`oid`
LEFT JOIN `mzk_cms_trasy` AS `t` ON `t`.`id` = `o`.`tid`
LEFT JOIN `mzk_cms_kursy` AS `k` ON `k`.`id` = `t`.`kid`
LEFT JOIN `mzk_cms_kierunki` AS `ki` ON `ki`.`id` = `k`.`kid`
LEFT JOIN `mzk_cms_autobusy` AS `a` ON `a`.`id` = `k`.`aid`
WHERE (
`t`.`przystanki` LIKE '%|16|%|6|%'
)
AND (
`o`.`dni` LIKE '%1%'
)
AND (
`g`.`pid` =16
)
AND (
`godzina`
BETWEEN 72600
AND 73200
)
ORDER BY `g`.`godzina` ASC
wyszukuje wszystkie autobusy, które odjeżdżają w poniedziałki z przystanku #16 miedzy godziną 20:10 a 20:20, które przejeżdżają przez przystanek #6
Jest możliwość ułatwienia tego zapytania?