Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Pemicu untuk menegakkan hubungan M-M

Kondisi banyak-ke-banyak tidak boleh diterapkan menggunakan pemicu. Kondisi many-to-many diterapkan dengan membuat tabel persimpangan yang berisi kunci yang dimaksud, yang kemudian dikunci kembali ke tabel induk masing-masing.

Jika niat Anda adalah untuk mengizinkan banyak karyawan berada di sebuah departemen, dan untuk mengizinkan seorang karyawan menjadi anggota dari banyak departemen, tabel persimpangan yang dimaksud akan terlihat seperti:

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

Ini mengasumsikan bahwa DEPARTMENT.DEPARTMENTNAME dan EMPLOYEE.EMPLOYEENUMBER adalah kunci utama atau kunci unik pada tabel masing-masing. Singkirkan kolom EMPLOYEE.DEPARTMENT karena tidak diperlukan lagi. Sekarang dengan membuat baris di EMPLOYEES_DEPARTMENTS tabel Anda dapat menghubungkan beberapa karyawan dengan satu departemen, dan Anda dapat menghubungkan satu karyawan dengan beberapa departemen.

Logika bisnis yang mengharuskan hanya departemen dengan satu atau lebih sedikit karyawan yang dapat dihapus tidak boleh diterapkan di pemicu. Logika bisnis harus dilakukan oleh kode aplikasi, TIDAK PERNAH oleh pemicu. Menempatkan logika bisnis dalam pemicu adalah cara untuk mengakhiri sesi debugging. M̫̣̗̝̫͙a̳͕̮d̖̤̳̙̤n̳̻̖e͍̺̲̼̱̠͉ss̭̩̟ terletak seperti ini. Jangan menyerah. Jangan menyerah. pembuatan logika dalam pemicu membuka luka yang dalam di jalinan dunia, di mana makhluk-makhluk tidak suci dari bentuk tak tentu akan melintasi penghalang di antara bidang-bidang, membawa keluar dari berteriakan͡ sous of th͜e develop Jangan, seperti yang telah saya katakan, memasukkan b́u͜siness͞ log̛i͘ç in͢ trigge͠rs͞.̡ Bersikaplah tegas. Lawan. Kamu harus melawan. Tem͟p͞t̶at͏i͝o̶n҉s͘ m͘a̶y ing himne̷ o͢f̴ un͘hol̵y r̶ev͢ęla͠t̡ion̴ buţ yo͠u̵ mu͏s͝t n͜͏͟o҉t̶͡͏ l̸̛͟͢ì̧̢̨̕s̵̨̨͢t̵̀͞e̶͠n̶̴̵̢̕. Hanya dengan berdiri kokoh di pintu antara dunia dan menghalangi pancaran mengerikan yang dipancarkan oleh bú̧si̶̢n̵̕e̵ş͝s l̴ó̢g̛͟i̕͏c i͞n̕ t̵͜r͢͝i̸̢̛ģ͟ge̸̶͟r̶s͢͜, yang memutarbalikkan bentuk dunia ąnd̴̀͝ a̧͞l̶l͟͜s̕͘͢ GO̶̴̤̬͈̤̬̲̳͇ͯ̊ͮ͐̒̆͂͠LZ̶̴̤̬͈̤̬̲̳͇ͯ̊ͮ͐̒̆͂͠Â̆́̊̓͛́̚͏̮̘̗̻̞̬̱ͅ i͜҉nt͝ǫ̴ b̷͞è͢ì̕n̴g͏,̛̀͘ c҉á̴͡ń youŕ̨ a̸p͏̡͡pl̷͠ic͞a̢t̡i͡҉ǫn̴ s̶͜u̶͢ŗv̛í̴v́ȩ.͘͘ Menolak. Melawan. tir̀͏e͢͞ i̶̡͢s̴ n̵͝o̡ a̡y̕҉ b́͏u̵̶̕t͜ s͘͢t͘͠į͟l͘l̷̴ u҉̨ mus̸͞t̸̛͜ rȩ̴s̢͢i͘͡s͏t̸.̛̀͜ o͡u Anda dikompromikan oleh p͝u͘͝tt͠i̸ņ̸̶g͟͡ 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̵͟ś ! Itu terlalu berat untuk ditanggung, kita tidak tahan! Bahkan anak-anak terang tidak boleh memasukkan logika bisnis ke dalam pemicu mereka, karena b̴̸̡̨u͜͏̧͝ş̶i̷̸̢̛҉ń̸͟͏́e̡͏͏͏s̷̵̡s̕͟ l̷̡ǫ̷̶͡g҉̨̛i͘͠͏̸̨c̕͢͏ ̸̶̧͢͢i̸̡̛͘n͢͡ ̀͢͝t̷̷̛́ŗì̴̴̢g̶͏̷ǵ͠ȩ̀́r̸̵̢̕͜s͞͏̵ adalah yang paling esensial o̶̢͜f͏ d́ar͟͞͠k̡͞n̢̡es̵̛͡s̀̀͡ dan dev͘ou͝͡s̀̀͡ 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͓͚͎̱̠̜!

Jangan tanya bagaimana saya tahu.

Semoga berhasil.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Referensi tabel dalam skema lain yang menghilangkan nama skema

  2. Kebuntuan di Oracle

  3. COLLATION() Fungsi di Oracle

  4. Arti dari byte dump(systimestamp) Oracle

  5. Gabungkan node XMLType dalam kueri Oracle