sql >> Database teknologi >  >> RDS >> PostgreSQL

Dvale 'Inverse' i kortfilen

Inverse bestemmer bare, hvilken enhed i et forhold, der er ansvarlig for at opdatere databasen, så den afspejler tilknytningen.

Antag en en til mange tovejssammenslutning. Der er to klasser i koden A og B, A indeholder et sæt af B, B opretholder en reference til A. På databaseniveau er der kun én fremmednøgle, der skal opdateres, tabellen for B indeholder en kolonne til primærnøgle af A.

Antag i dette tilfælde, at vi sætter det omvendte =sandt på den indstillede side. Dette indebærer, at blot tilføjelse af en enhed til sættet ikke vil udløse den fremmede nøgleopdatering. Fordi ansvaret for at opdatere den fremmede nøgle hviler på B. Så tilføjelse af et B-objekt til det sæt, som A vedligeholder, er ikke nok til at opdatere kolonnen med fremmednøgle. objectA.addToSetOfB(objectB) vil ikke påvirke fremmednøglen.

Først når B får en reference til A, vil fremmednøglen i tabellen for B blive opdateret. Så objectB.setA(objectA) vil helt sikkert opdatere fremmednøglen og faktisk opsætte relationen.

Jeg tror, ​​at det samme koncept også vil føre til mange til mange forhold.



  1. Problem med at uploade data til databasen

  2. Sådan forhindrer du automatiske AJAX-angreb

  3. Automatiser sikkerhedskopiering og vedligeholdelsesjob ved hjælp af vedligeholdelsesplan i SQL Server

  4. Er der en boolsk datatype i Microsoft SQL Server, som der er i MySQL?