Mysql chei străine și setările lor în phpMyAdmin
De ce avem nevoie de chei străine în tabel
chei externe reglementează relațiile dintre tabele. Datorită lor, un control foarte mult simplificat al structurii de bază, reduce și simplifică codul de aplicație, deoarece o mare parte din responsabilitate pentru aceasta trece de la umeri la baza de date în sine. Configurat corespunzător chei străine - este o garanție că va crește integritatea datelor prin reducerea redundanței.
Într-un cuvânt - în cheile străine o mulțime de avantaje, de aceea este util să se știe cum funcționează.
Configurarea chei externe
Voi demonstra în configurația ADMIN PHP favorit, deoarece este foarte convenabil, în plus, administratorul nu ascunde codul generat de interogare și puteți vedea întotdeauna (amintiți-vă, copia, tăiate în sus).
EXEMPLUL ManyToOne și OneToMany
Două tabele: mărfuri (id, nume, catalog_id) și cataloage (id, nume). Intr-un set de articole catalog (OneToMany), precum și orice număr de produse pot fi în același director (ManyToOne). cheie externă în acest exemplu este în câmpul catalog_id tabel mărfuri.
Crearea tabelelor în phpMyAdmin
interogările generate
Setarea catalog_id cheie externă
Este timpul pentru a crea o legătură între produsele și cataloagele. Deschideți mărfuri de masă. du-te la tab-ul butonul „Structură“ și să căutați „conexiuni“.
În „constrângerile străine cheie“ umple-line și selectați acțiunea «ON DELETE» și «ON UPDATE».
Cererea generată
Valorile de pe UPDATE și DELETE ON
CASCADE - Cascade ștergerea sau editarea. Această setare înseamnă că, atunci când ștergeți un director, toate produsele din aceasta, de asemenea, șterse. Când editați, dacă vom schimba directorul ID-ul de mărfuri schimbă automat în domeniul «catalog_id».
RESTRICT - În această setare, dacă încercăm să ștergeți un director care are bunurile, sau pentru a schimba ID-ul său, baza de date ne va da o eroare și de eliminare nu are loc.
SET NULL - Din numele este clar că, dacă dispar (șterge sau modifica), directorul cu id-ul, apoi la mărfurile în domeniul «catalog_id» Setați valoarea NULL. Cu această setare, trebuie să fie atent, deoarece indicii implicit «NOT NULL».
Nici o acțiune - Ignoră și șterge editarea director, și să «catalog_id» câmp va fi identitate inexistentă, pur și simplu ignora-l.
exemplu ManyToMany
Crearea de relații de masă
În phpMyAdmin
Cererea generată
author_id book_id și sunt împreună un indice compozit, rămâne doar să adăugați restricții pe fiecare dintre ele în tab-ul „conexiuni“ și ați terminat!
concluzie
Nu pierdeți ocazia de a stabili mai multe taxe pe baza de date, pentru a facilita munca sa cu privire la aplicarea, și să se gândească la structura sa și nu pe relațiile de masă de control. Mult noroc cu design-ul de baze de date, vă mulțumesc pentru atenție!