Oracle
 sql >> база данни >  >> RDS >> Oracle

Вмъкване на външен ключ с множество стойности

За съжаление току-що зададохте стария въпрос;

Отговорът е, разбира се, че не го правите; имате две колони. За да разширите примера си за служител, таблицата ви за служители ще стане:

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) 
   );

Както можете да видите, това не е особено красиво нещо и нарушава нормализирането; какво се случва, ако искате вашият служител (или вашият служител иска разбира се) да има 3 умения? Или 10?.

Вероятно би било по-добре да създадете трета таблица и да направите всичките си съединения с един първичен и външен ключ; така че бихте имали

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Искам да дам разрешения на потребител да вижда EMP таблицата

  2. как да присвоя стойност на променлива в израз за PL/SQL блок?

  3. Оператори за смяна в PL/SQL

  4. Актуализирайте всички редове на таблицата след определено време

  5. Oracle Създаване на среда за поддръжка на глобализацията