Temos pavadinimas: WordPress, Shopify ir PHPFusion programuotojų bendruomenė :: Pagalba informaciniu technologiju klausimais

Parašė ozzWANTED· 2010 Sau. 23 22:01:48
#5

Tai raktas į kitą lentelę.
Pvz.
Tavo lentelėje koks nors stlupelis yra priklausomas nuo kitos lentelės stulpelio(tas kitos lentelės stulpelis, REKOMENDUOJAMA, kad būtų PRIMARY KEY, ar bent jau UNIQUE index.

Kodas:
CONSTRAINT FOREIGN KEY isorinis REFERENCES kita_lentel(user_id)




Jis skirtas kad būtų išvengta duomenų anomalijų, nes galima naudoti frazes sekančios po jo kodo:

ON UPDATE RESTRICT ON DELETE CASCADE
ir t.t.
Pvz. aukščiau paminėta reiškia, kad NELEIS atnaujinti pagrindinės eilutės, jeigu jis turi priklausomų nuo jos eilučių kitose lentelėse, o TRYNIMO atveju - pašalins ir šią eilutę ir visas su ja susijusias.

Žmogiškai šnekant.
Pvz. turi lentelę users(user_id,....)
ir yra user_acts_history(act_id, ..., related_id),

Ir jeigu trinsi userį iš users, tai automatiškai pasišalins visi su jo ID susiję įrašai lentelėje user_acts_history. O jeigu users lentelėje bandysi pakeisti user_id, tau mes SQLSTATE klaidą, kad negalima ištrinti įrašo, nes jis turi priklausomų laukelių.

Redagavo ozzWANTED· 2010 Sau. 23 22:01:09