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

Външен ключ, препращащ към множество редове в друга таблица

Обичайното решение за това би било да се създаде пресечна таблица:

CREATE TABLE vehicles_owned
(
  o_id INT,
  v_id INT,
  PRIMARY KEY (o_id, v_id),
  FOREIGN KEY (o_id)
    REFERENCES owners (o_id),
  FOREIGN KEY (v_id)
    REFERENCES vehicles (v_id)
);

След това изпускате v_id от owners .

Тази таблица позволява на всеки owner да притежавате няколко vehicles и всяко vehicle да има множество owners . Ако искате да наложите ограничение за един собственик на превозно средство, добавете UNIQUE индекс към vehicles_owned.v_id .

РЕДАКТИРАНЕ:Разбира се, ако искате да наложите ограничение за един собственик на превозно средство, можете просто да добавите o_id към vehicles като външен ключ и да не се занимавате с пресечната таблица.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Кеширане в JDBC

  2. sql:изберете най-много гласувани елементи от всеки потребител

  3. рейк прекратен! неинициализирана константа Mysql2

  4. Избягайте от командните редове на MYSQL чрез Bash скриптове

  5. Resque Mysql2::Грешка:Потребителят е превишил ресурса 'max_user_connections' (текуща стойност:10)