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

Съюз на комплекса MYSQL

Ако желаната от вас йерархия е програма -> тема -> нишка -> година -> единица -> учебно_събитие, тогава трябва да коригирате структурата на таблицата си, за да отразява това. По-специално темата трябва да има връзка с външен ключ между тема и програма и вие се нуждаете от допълнително ниво за година. Наличието на външен ключ между тема и програма избягва необходимостта от кръстосано присъединяване. Кръстосаните съединения имат навика да ви хапят и обикновено трябва да се избягват.

Ако погледнете тази db цигулка ще видите, че направих тези промени. Извиках годишно ниво strandyear, за да избегна използването на запазена дума, но намерението трябва да е ясно. Сега присъединяванията стават вътрешни съединения (вместо левите съединения), за да вземат стойностите на описанието от по-високи нива в дървото, а долното ниво (learning_events) автоматично съдържа само стойности, които съвпадат с верига, година и единица, без друга причина, освен че самата структура го гарантира, чрез простото средство всяко ниво да има външен ключ към нивото по-горе.

Имайте предвид, че външните ключове ефективно са верижна връзка. Не се нуждаете например от специфичен външен ключ между learning_event и направление, защото интервенционните ключове във веригата гарантират връзката.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да свържете подобни тагове в XML файл

  2. Импортирайте MySQL база данни в MS SQL Server

  3. Базата данни спя и причинява изключение

  4. Списък на спецификаторите на формата на датата в MySQL

  5. вмъкване на масив от стойности в база данни с помощта на SQL заявка?