sql >> Database teknologi >  >> RDS >> Oracle

Indsættelse af en fremmednøgle med flere værdier

Desværre har du lige stillet det ældgamle spørgsmål;

Svaret er selvfølgelig, at det gør du ikke; du har to kolonner. For at udvide dit medarbejdereksempel vil din medarbejdertabel blive:

create table employees (
   id number
 , name varchar2(4000)
 , skill_1 number
 , skill_2 number
 , constraint employee_pk primary key (id)
 , constraint employee_skill_1_fs 
      foreign key ( skill_1 ) 
   references skills(skillid)
 , constraint employee_skill_2_fs 
      foreign key ( skill_2 ) 
   references skills(skillid) 
   );

Som du kan se, er dette ikke en særlig smuk ting at gøre og bryder normaliseringen; hvad sker der, hvis du ønsker, at din medarbejder (eller din medarbejder selvfølgelig ønsker) skal have 3 kompetencer? Eller 10?.

Det ville sandsynligvis være bedre at oprette en tredje tabel og lave alle dine joins med en enkelt primær og fremmed nøgle; så du ville have

employees ( employee_id, ..., pk employee_id);
employee_skills ( employee_id, skill_id, ..., pk employee_id, skill_id, fk skill_id );
skills ( skill_id, description, ..., pk skill_id );


  1. sørg for, at resultatet af PDO-hentningsmetoden er falsk er en fejl eller et tomt resultat

  2. Kan ikke installere pg gem i Mavericks med Postgres.app

  3. Klassen 'mysqli_connect' blev ikke fundet

  4. SQL INSERT INTO... VÆLG eksempler