sql >> Database >  >> RDS >> Sqlserver

Inzicht in update- en verwijderingsregels voor relaties in SSMS 2008

De refererende sleutel definieert een parent-child relatie tussen twee tabellen. De primaire sleutel in de bovenliggende tabel is de externe sleutel in de maximaal n onderliggende tabelrijen.

Als nu die primaire sleutel in de bovenliggende tabel UPDATE krijgt, treedt de UPDATE-REGEL in werking. Ofwel alle onderliggende rijen worden ook bijgewerkt, ingesteld op NULL of wat dan ook. Het beste is echter om een ​​primaire sleutel te hebben die NOOIT verandert (een vaste ID of zoiets), dus dat is de minder belangrijke regel.

De belangrijkste is de DELETE-regel - wat als de bovenliggende rij wordt verwijderd (bijv. de Order wordt verwijderd)? U kunt ook alle onderliggende rijen (alle orderregelitems) verwijderen met CASCADE DELETE, of u kunt hun externe sleutel instellen op NULL (ze hebben geen bovenliggende meer) - dat is helemaal aan uw concrete scenario.

In het scenario Order/orderregels kan het heel handig zijn om de orderregels te verwijderen wanneer de volledige bestelling wordt verwijderd, maar u wilt waarschijnlijk een product niet verwijderen, alleen omdat een bestelling die ernaar verwijst, is verwijderd - er is geen één enkel JUIST antwoord - het hangt af van uw scenario en uw app.

Marc



  1. Een gids voor Pgpool voor PostgreSQL:deel twee

  2. DATEADD-equivalent in PostgreSQL

  3. Tijd- en datumstempel in een MySQL-tabelrij

  4. Ongeldig argument opgegeven voor foreach() in Codeigniter