Mam następującą sytuacje:
- tabele: pracownicy, jezyki, umiejetnosci.
Kod
CREATE TABLE IF NOT EXISTS `tbl_applicants` (
`appl_no` int(11) NOT NULL auto_increment,
`position_id` smallint(6) NOT NULL default '0',
`surname` varchar(40) NOT NULL default '',
`firstname` varchar(40) NOT NULL default '',
`street` varchar(60) NOT NULL default '',
`email` varchar(40) default NULL,
`city` varchar(40) NOT NULL default '',
`telephone` varchar(20) default NULL,
`postalcode` varchar(10) NOT NULL default '',
`mobilephone` varchar(20) default NULL,
`country` varchar(30) NOT NULL default '',
`day_of_birth` date default NULL,
`edu_id` int(11) NOT NULL default '0',
`lang_id` int(11) NOT NULL default '0',
`skills_id` int(11) NOT NULL default '0',
`exps_id` int(11) NOT NULL default '0',
`status_id` int(11) NOT NULL default '0',
`remarks_id` int(11) NOT NULL default '0',
PRIMARY KEY (`appl_no`),
KEY `appl_name` (`surname`,`firstname`)
) TYPE=MyISAM AUTO_INCREMENT=2;
`appl_no` int(11) NOT NULL auto_increment,
`position_id` smallint(6) NOT NULL default '0',
`surname` varchar(40) NOT NULL default '',
`firstname` varchar(40) NOT NULL default '',
`street` varchar(60) NOT NULL default '',
`email` varchar(40) default NULL,
`city` varchar(40) NOT NULL default '',
`telephone` varchar(20) default NULL,
`postalcode` varchar(10) NOT NULL default '',
`mobilephone` varchar(20) default NULL,
`country` varchar(30) NOT NULL default '',
`day_of_birth` date default NULL,
`edu_id` int(11) NOT NULL default '0',
`lang_id` int(11) NOT NULL default '0',
`skills_id` int(11) NOT NULL default '0',
`exps_id` int(11) NOT NULL default '0',
`status_id` int(11) NOT NULL default '0',
`remarks_id` int(11) NOT NULL default '0',
PRIMARY KEY (`appl_no`),
KEY `appl_name` (`surname`,`firstname`)
) TYPE=MyISAM AUTO_INCREMENT=2;
Kod
CREATE TABLE IF NOT EXISTS `tbl_appl_skills` (
`appl_skill_id` int(11) NOT NULL auto_increment,
`appl_no` int(11) NOT NULL default '0',
`catia_v4_level` smallint(6) NOT NULL default '0',
`catia_v5_level` smallint(6) NOT NULL default '0',
`pro_engineer_level` smallint(6) NOT NULL default '0',
`unigraphics_level` smallint(6) NOT NULL default '0',
`i_deas_level` smallint(6) NOT NULL default '0',
`other_cad_id` smallint(6) default NULL,
`other_cad_level` smallint(6) default NULL,
`msoffice_level` smallint(6) NOT NULL default '0',
`msproject_level` smallint(6) NOT NULL default '0',
`vda_apqp_level` smallint(6) NOT NULL default '0',
`qs_iso9000_level` smallint(6) NOT NULL default '0',
`other_skill_id` smallint(6) default NULL,
`other_skill_level` smallint(6) default NULL,
PRIMARY KEY (`appl_skill_id`)
) TYPE=MyISAM AUTO_INCREMENT=2;
`appl_skill_id` int(11) NOT NULL auto_increment,
`appl_no` int(11) NOT NULL default '0',
`catia_v4_level` smallint(6) NOT NULL default '0',
`catia_v5_level` smallint(6) NOT NULL default '0',
`pro_engineer_level` smallint(6) NOT NULL default '0',
`unigraphics_level` smallint(6) NOT NULL default '0',
`i_deas_level` smallint(6) NOT NULL default '0',
`other_cad_id` smallint(6) default NULL,
`other_cad_level` smallint(6) default NULL,
`msoffice_level` smallint(6) NOT NULL default '0',
`msproject_level` smallint(6) NOT NULL default '0',
`vda_apqp_level` smallint(6) NOT NULL default '0',
`qs_iso9000_level` smallint(6) NOT NULL default '0',
`other_skill_id` smallint(6) default NULL,
`other_skill_level` smallint(6) default NULL,
PRIMARY KEY (`appl_skill_id`)
) TYPE=MyISAM AUTO_INCREMENT=2;
Kod
CREATE TABLE IF NOT EXISTS `tbl_appl_langs` (
`appl_lang_id` int(11) NOT NULL auto_increment,
`appl_no` int(11) NOT NULL default '0',
`english_level` smallint(6) NOT NULL default '0',
`german_level` smallint(6) NOT NULL default '0',
`czech_level` smallint(6) NOT NULL default '0',
`french_level` smallint(6) NOT NULL default '0',
`polish_level` smallint(6) NOT NULL default '0',
`lang_other_id` smallint(6) default NULL,
`lang_other_level` smallint(6) default NULL,
PRIMARY KEY (`appl_lang_id`)
) TYPE=MyISAM COMMENT='Applicants language knowledge table' AUTO_INCREMENT=2;
`appl_lang_id` int(11) NOT NULL auto_increment,
`appl_no` int(11) NOT NULL default '0',
`english_level` smallint(6) NOT NULL default '0',
`german_level` smallint(6) NOT NULL default '0',
`czech_level` smallint(6) NOT NULL default '0',
`french_level` smallint(6) NOT NULL default '0',
`polish_level` smallint(6) NOT NULL default '0',
`lang_other_id` smallint(6) default NULL,
`lang_other_level` smallint(6) default NULL,
PRIMARY KEY (`appl_lang_id`)
) TYPE=MyISAM COMMENT='Applicants language knowledge table' AUTO_INCREMENT=2;
Powiązania są następujące:
tbl_applicants.appl_no=tbl_appl_skills.appl_no and tbl_applicants.skills_id=tbl_appl_skills.appl_skill_id
tbl_applicants.appl_no=tbl_appl_langs.appl_no and tbl_applicants.lang_id=tbl_appl_langs.appl_lang_id
Muszę zrobić wyszukiwanie w/g nastepujacych kryteriów:
stanowiska pracownika (tbl_applicants.position_id)
i/lub
znajomosci jezykow (przeszukiwanie po tbl_appl_langs)
i/lub
umiejetnosci (przeszukiwanie po tbl_appl_skills)
Czy musze osobno oprogramowac kazdy z mozliwych wariantow (8)

Jak to oprogramować w miarę ekonomicznie

Potrzebuję TYLKO pomysł jak to zrobić. Chodzi mi tylko o algorytm rozwiązania, a nie szczegóły.
Jak zwykle bede wdzieczen za pomoc
