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

Има ли таблица за присъединяване (таблица за асоцииране) първичен ключ? много към много отношения

В чистата таблица за свързване или свързване всички полета ще бъдат част от първичния ключ. Например нека разгледаме следните таблици:

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

Таблица за свързване между тях, която позволява на много потребители да имат много атрибути, би била

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

Понякога ще откриете необходимостта да добавите неосновна колона към таблица за свързване, но смятам, че това е сравнително рядко.

Споделете и се насладете.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. „PDOException“ със съобщение „SQLSTATE[HY000] [2002] Няма маршрут до хост

  2. грешка във вашия SQL синтаксис .. близо до 'ключ'

  3. Как да добавя персонализирано ограничение CHECK към MySQL таблица?

  4. Mysql заявка за намиране на сума от полета със същата стойност на колоната

  5. Използване на PHP за качване на файл и добавяне на пътя към базата данни на MySQL