Witam,

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;

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;

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;


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)questionmark.gif
Jak to oprogramować w miarę ekonomicznie questionmark.gif

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

Jak zwykle bede wdzieczen za pomoc smile.gif