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

Внедряване на асоциативни таблици

Връзката между Locations и Events е пример за връзка 1 към много. Това означава, че всяко отделно местоположение може да има много събития, свързани с него. Тези типове релации обикновено се реализират чрез добавяне на външен ключ към таблицата „много“ (събития), който препраща към първичния ключ на таблицата „един“ (местоположения).

Връзката между „Местоположения“ и „Типове“ е пример за връзка „много към много“. Това означава, че едно местоположение може да има много типове и тип може да бъде свързан с много местоположения. Тези видове връзки обикновено се реализират с таблица с връзки, която съдържа външни ключове за свързаните редове. Таблицата с връзки обикновено има съставен първичен ключ от двата външни ключа, което означава, че едно местоположение не може да бъде свързано с типа „бар“ два пъти.

Така че следните структури на таблици може да са подходящи за вас:

Location: ID (primary key), LocationName, ...
Events: ID (primary key), LocationID (foreign key), Date, Name, ...
LocationTypes: LocationID (fk), TypeID (fk)
Types: ID (pk), Name, ...

За да потърсите информацията в няколко от таблиците, трябва да използвате връзки. За връзката 1 към много ще работи следната заявка:

SELECT
    l.LocationName, e.Name, e.Date
FROM Location l
    JOIN Events e ON l.ID = e.LocationID

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

SELECT
    l.LocationName, t.Name as TypeName
FROM Location l
    JOIN LocationTypes lt ON l.ID = lt.LocationID
    JOIN Types t ON lt.TypeID = t.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. Как да намерите и замените текст в MySQL база данни с помощта на SQL

  2. Има ли някакъв начин да се използват json обекти в SQL

  3. Многостепенни отговори на коментари:Дисплей и съхранение

  4. Трябва ли да деактивирам стриктния режим на MySQL?

  5. изпълнете *.sql файл с python MySQLdb