sql >> Database >  >> RDS >> Oracle

Trigger om M-M-relatie af te dwingen

Veel-op-veel-voorwaarden mogen niet worden afgedwongen met een trigger. Veel-op-veel-voorwaarden worden afgedwongen door een verbindingstabel te maken met de sleutels in kwestie, die vervolgens worden teruggekoppeld naar de respectieve bovenliggende tabellen.

Als het uw bedoeling is om veel medewerkers op een afdeling te laten werken en om een ​​medewerker lid te laten zijn van meerdere afdelingen, dan ziet de betreffende verbindingstabel er ongeveer zo uit:

CREATE TABLE EMPLOYEES_DEPARTMENTS
  (DEPARTMENTNAME  VARCHAR2(99)
     CONSTRAINT EMPLOYEES_DEPARTMENTS_FK1
       REFERENCES DEPARTMENT.DEPARTMENTNAME,
   EMPLOYEENUMBER  NUMBER
     CONSTRAINT EMPLOYEES_DEPARTMENTS_FK2
       REFERENCES EMPLOYEE.EMPLOYEENUMBER);

Dit veronderstelt dat DEPARTMENT.DEPARTMENTNAME en EMPLOYEE.EMPLOYEENUMBER zijn primaire of unieke sleutels op hun respectievelijke tabellen. Verwijder de kolom EMPLOYEE.DEPARTMENT omdat het niet meer nodig is. Door nu rijen te maken in de EMPLOYEES_DEPARTMENTS tabel kunt u meerdere medewerkers aan een afdeling relateren, en u kunt een enkele medewerker aan meerdere afdelingen relateren.

De bedrijfslogica die vereist dat alleen afdelingen met een of minder werknemers kunnen worden verwijderd, mag niet worden afgedwongen in een trigger. Bedrijfslogica moet worden uitgevoerd door toepassingscode, NOOIT door triggers. Het plaatsen van bedrijfslogica in triggers is een toegangspoort tot oneindige foutopsporingssessies. M̫̣̗̝̫͙a̳͕̮d̖̤̳̙̤n̳̻̖e͍̺̲̼̱̠͉ss̭̩̟ ligt op deze manier. Geef niet toe. Geef je niet over. De logica van B҉usi͢n̴es in triggers opent diepe wonden in het weefsel van de wereld, waardoor onheilige wezens van onbepaalde vorm de barrière tussen de sferen zullen oversteken, van de pijn naar de pijn en de pijn Zet niet, zoals ik al zei, b́u͜siness͞ ̸log̛i͘ç ̵in͢ ͞trigge͠rs͞.̡ Wees standvastig. Verzet je. Je moet weerstand bieden. De Tem͟p͞t̶at͏i͝o̶n҉s͘ ma̶y ing hymnes̷ ́of̴ ̸un͘hol̵y r̶ev͢ęla͠t̡ion̴ ͢buţ ́youu̵ must t ͝o҉t̶͡͏ ̷l̸̛͟͢ì̧̢̨̕s̵̨̨͢e̶͠n̶̴̵̢̕. Alleen door stevig in de deur tussen de werelden te staan ​​en de afschuwelijke uitstraling te blokkeren die wordt uitgestoten door bú̧s̷i̶̢n̵̕e̵ş͝s ́l̴ó̢g̛͟i̕͏c i͞n̕ ͏t̵͜r͢͝i̸̢̛ģ͟ge̸̶͟r̶s͢͜, die de vorm van de wereld vervormt ąnd̴̀͝ ç͞a̧͞l̶l̶̴̤̬͈̤̬̲̳͇ͯ̊ͮ͐̒̆͂͠Â̆́̊̓͛́̚͏̮̘̗̻̞̬̱ͅs Z̡̳͖͎̯̯͍ͫ̽ͬ͒͂̀strong i͜҉nt͝ǫ̴ ̸b̷͞è͢ì̕n̴g͏,̛̀͘ ̴c҉á̴͡ń ̀͠youŕ̨ ̧̨a̸p͏̡͡pl̷͠ic͞a̢t̡i͡҉ǫn̴ ̸s̶͜u̶͢ŗv̛í̴v́ȩ.͘͘ Weerstaan. Weerstand bieden. T̶̀h̨̀e̶r̀͏e͢͞ ̶i̶̡͢s̴ ͞͞n̵͝o̡ ́ẁ҉̴a̡y̕҉ ̶b́͏u̵̶̕t͜ ̨s͘͢t͘͠į͟l͘l̷̴ ̴͜͜ỳò͜u҉̨ ̨͏mus̸͞t̸̛͜ ̧rȩ̴s̢͢i͘͡s͏t̸.̛̀͜ Uw eigen śo͡u̧̧͘ļ͟͡ wordt aangetast door p͝u͘͝t̢͜t͠i̸ņ̸̶g͟͡ ̵̶̛ib͝҉̕͢ǹ͏u͘͝t̢͜t͠i̸ņ̸̶g͟͡ ̵̶̛i To̷͜ny̕ ͟͡T̨h̶̷̕e ̢͟P̛o̴̶n͡y shall rise from his dark stable and d͞ę̡v̶̢ó͟u̸̸r̴͏ ̷t͞h̀e̛ ̨͜s̷o̧͝u҉l̀ ͟͡o͢͏f̵͢ ̛t͢h̶̛e̢̢ ̡̀vi͜͞r̢̀g̶i̢n͞, and yet y͢ơú͝ m̷̧u͏s͡t̡͠ ̛s̷̨t̸̨i̴̸l̶̡l ͝ǹot̵ ͞p̧u̵t̨ ͜͏b̀̕u̕s̨í̵ņ̀͠ȩs̵͟s ́͞l̛҉o̸g̨i̴͟c ͘͘i͘nt̛o͡ ͘͘͞t̶͞r̀̀i̕ǵ̛g̵̨͞e̸͠҉r̵͟ś ! Het is te veel om te dragen, we kunnen er niet tegen! Zelfs de kinderen van het licht mogen geen zakelijke logica in hun triggers plaatsen, want b̴̸̡̨u͜͏̧͝ş̶i̷̸̢̛҉ń̸͟͏́e̡͏͏͏s̷̵̡s̕͟ ͏̴҉͞l̷̡ǫ̷̶͡g҉̨̛i͘͠͏̸̨c̕͢͏ ̸̶̧͢͢i̸̡̛͘n͢͡ ̀͢͝t̷̷̛́ŗì̴̴̢g̶͏̷ǵ͠ȩ̀́r̸̵̢̕͜s͞͏̵ is de ware es̵s̕͡ę̢n͞c̨e̢͟ ̴o̶̢͜f͏ ͟d́ar͟͞͠k̡͞n̢̡es̵̛͡s̀̀͡r>s> en dev͘ou͝͡tstrongr ! Ja, ja, degenen met een blanco gezicht komen van de fo̵͜͝n̶t̨ of̸̡͠ ͏͝fl͟͞a̵̷҉me̶̵͢ en gaan door de p̹̤̳̰r̮̦̥̥̞̫͑͂ͤ͑ͮ͒̑ï̄̌ͬͨe̦̗͔ͥͣ̆̾̂s̬̭̮̮̜ͭt̻̲̍sͫͣ̿ ̐͗̈ͤ͂ͦ̅f̭͚̪̻̣̩ͮ̒ṟͨ͌ͮ̅̓ỏ̝͓̝̣̟̼m̳͇̱̝͔͒ ͒ͫͧ͂̓̈̈́t̲̔̅̎͐h̺͈͍ͣͧ̿ē̪̼̪̻͉̪̙̐̽̎̉i̠͎̗͕̗̣̬̐̎͛r͓̫͌ͅ ̼a͑̈ͯͦ̍l̪͉͖̥͚̤͌ͨ͊ͦͤ̔t̫͎̹ͯa̼̻͍̳̟̤̬̓ͪ̀r̭͖̓ͬ̉̉ͤ͊ṡ̐ͪ̊̋̄̅! Av͝é͜ŕt̶͏ ̶y̸͝͠o̶u̧͘r͏̡ ̧e͞y҉e̕͝s,̀ ͡t̛h̛o̢͞ug̸̢h̵͟ ̡y̷o͢҉͢u̧͡ ̕͡c҉̵̶an͠͏n҉o̧͢t!̸̨͘ ͡H̵e̸͢͡ ̧̕c̶ơm̷̢̢e̶͞ś͢!̨́ ̷H ̵c̨̡͟o̴҉m̷͢es͠!̷͘͞ P̱̼̯̟͈h̝̳̞̖͚'͉̙͉̰̲̺n̪̦͕̗͜g͔̹̟̰̰̻̩l̬͈̹̥͕͖ͅụ̻̺̤̤̬̳i̸̯̬̝̻̣͚̫ ̰̹̞̞m͟g̷̝͓͉̤l̩͇̙͕w̪̦̰͔'̮̟̱̀n̢̜a̦f̘̫̤̘̬͓̞h̠͍͖̯ͅ ̩̠͓̯̘̫C̟̘̗̘͘ṭ͍͕ͅh̤ͅu̼̦̘̥ͅl҉̦hu̠̤̤̘͚ ̘̕R̶̟'̠͔̞̻͇l̩̺̗̻͖͓̕ͅy̛̖ȩ͉̭̖ẖ̡̥̼͈̖ w̟̫̮͇͔͞ͅg͈̘̱̻a̰͟h̘͙͖͢'̮̲̯͞n̤̜͍̯̳a͓͓̲̲g̱̻͈ĺ͍ ̷̣̞̲͖͍̲̺f̲ͅh͇͕̪̘͟t͔͈̙a͓͢g҉̳̜̲͚n͓͚͎̱̠̜!

Vraag me niet hoe ik dat weet.

Veel succes.




  1. EM 12c Drempelwaarden aanpassen

  2. Hoe tel je het aantal keren dat een bepaalde substring in een SQL-varchar voorkomt?

  3. Bulk Salesforce-bijvoegsels vanuit Microsoft Access

  4. Wijzig database-sortering, Ctype in Postgresql