Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Czy tabela Join (tabela asocjacyjna) ma klucz podstawowy? wiele do wielu relacji

W czystej tabeli „połącz” lub skrzyżowania wszystkie pola będą częścią klucza podstawowego. Rozważmy na przykład następujące tabele:

CREATE TABLE USERS
  (ID_USER NUMBER PRIMARY KEY,
   FIRST_NAME VARCHAR2(32),
   LAST_NAME VARCHAR2(32));

CREATE TABLE ATTRIBUTES
  (ID_ATTRIBUTE NUMBER PRIMARY KEY,
   ATTRIBUTE_NAME  VARCHAR2(64));

Tabela połączeń między nimi, aby umożliwić wielu użytkownikom posiadanie wielu atrybutów, byłaby

CREATE TABLE USER_ATTRIBUTES
  (ID_USER NUMBER REFERENCES USERS(ID_USER),
   ID_ATTRIBUTE NUMBER REFERENCES ATTRIBUTES(ID_ATTRIBUTE),
   PRIMARY KEY(ID_USER, ID_ATTRIBUTE));

Czasami zajdzie potrzeba dodania kolumny innej niż podstawowa do tabeli skrzyżowań, ale uważam, że jest to stosunkowo rzadkie.

Dziel się i ciesz.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Problem z porównaniem daty i godziny varchar

  2. Jak mogę generować dynamiczne wykresy z danymi MySQL?

  3. jak powiązać wartości INSERT INTO mysql perl

  4. Czy dane wejściowe w postaci szesnastkowej są wystarczające do oczyszczenia zapytań SQL?

  5. wypełnij pola wyboru, a następnie zaktualizuj zaznaczenie do mysql