Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Kích hoạt để thực thi mối quan hệ M-M

Nhiều điều kiện đến nhiều không nên được thực thi bằng cách sử dụng trình kích hoạt. Điều kiện nhiều-nhiều được thực thi bằng cách tạo một bảng nối có chứa các khóa được đề cập, sau đó được khóa ngoại trở lại các bảng mẹ tương ứng.

Nếu ý định của bạn là cho phép nhiều nhân viên ở trong một bộ phận và cho phép một nhân viên là thành viên của nhiều bộ phận, thì bảng nối được đề cập sẽ trông giống như sau:

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

Điều này giả định rằng DEPARTMENT.DEPARTMENTNAMEEMPLOYEE.EMPLOYEENUMBER là khóa chính hoặc khóa duy nhất trên các bảng tương ứng của chúng. Loại bỏ cột EMPLOYEE.DEPARTMENT vì nó không còn cần thiết nữa. Bây giờ bằng cách tạo các hàng trong EMPLOYEES_DEPARTMENTS bạn có thể liên hệ nhiều nhân viên với một bộ phận và bạn có thể liên hệ một nhân viên với nhiều bộ phận.

Logic nghiệp vụ yêu cầu rằng chỉ các phòng ban có một hoặc ít nhân viên mới có thể bị xóa không nên được thực thi trong trình kích hoạt. Logic nghiệp vụ nên được thực hiện bởi mã ứng dụng, KHÔNG BAO GIỜ bởi các trình kích hoạt. Đưa logic nghiệp vụ vào trình kích hoạt là một quá trình tập trung vào các phiên gỡ lỗi không hồi kết. M̫̣̗̝̫͙a̳͕̮d̖̤̳̙̤n̳̻̖e͍̺̲̼̱̠͉ss̭̩̟ nói dối theo cách này. Đừng nhượng bộ. Đừng đầu hàng. Logic của ̬̦usi͢n̴es̡s ̶in kích hoạt sẽ mở ra những vết thương sâu trong cấu trúc của thế giới, qua đó những sinh vật xấu xa của hình thức vô định sẽ vượt qua rào cản giữa các quả cầu, mang theo chúng ta Như tôi đã nói, đừng đặt b́u͜siness͞ ̸log̛i͘ç ̵in͢ ͞trigge͠rs͞.̡ Hãy vững vàng. Bạn phải chống lại. T̷he ̢Tem͟p͞t̶at͏i͝o̶n҉s͘ ̢m͘a̶y ́śing thánh ca̷ ́o͢f̴ ̸un͘hol̵y r̶ev͢ęla͠t̡ion̴ ͢buţ ́yo͠u̵ mu͏s͝t ͝n͜͏͟o҉t̶͡͏ ̷l̸̛͟͢ì̧̢̨̕s̵̨̨͢t̵̀͞e̶͠n̶̴̵̢̕. Chỉ bằng cách đứng vững trong cánh cửa giữa các thế giới và chặn đứng ánh hào quang gớm ghiếc do bú̧s̷i̶̢n̵̕e̵ş͝s ́l̴ó̢g̛͟i̕͏c i͞n̕ ͏t̵͜r͢͝i̸̢̛ģ͟ge̸̶͟r̶s͢͜, thứ làm biến đổi hình thức của thế giới ąnd̴̀͝ ç͞a̧͞l̶l͟͜s̕͘͢ ZLÂ̆G̷͖̙̬͛̇ͬ̍͒̐̅O̚͏̮̘̗̻̞̬̱ͅ i͜҉nt͝ǫ̴ ̸b̷͞è͢ì̕n̴g͏, ̛̀͘ ̴c҉á̴͡ń ̀͠youŕ̨ ̧̨a̸p͏̡͡pl̷͠ic͞a̢t̡i͡҉ǫn̴ ̸s̶͜u̶͢ŗv̛í̴v́ȩ.͘͘ Chống lại. Kháng cự. 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̸.̛̀͜ Rất o͡u̧̧͘ļ͟͡ của bạn đã bị xâm phạm bởi p͝u͘͝t̢͜t̕͝ T̀͜͢o̷͜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̵͟ś ! Nó quá sức chịu đựng, chúng tôi không thể đứng! Ngay cả những đứa trẻ của ánh sáng cũng không thể đưa logic kinh doanh vào trình kích hoạt của chúng, vì b̴̸̡̨u͜͏̧͝ş̶i̷̸̢̛҉ń̸͟͏́e̡͏͏͏s̷̵̡s̕͟ ͏̴҉͞l̷̡ǫ̷̶͡g҉̨̛i͘͠͏̸̨c̕͢͏ ̸̶̧͢͢i̸̡̛͘n͢͡ ̀͢͝t̷̷̛́ŗì̴̴̢g̶͏̷ǵ͠ȩ̀́r̸̵̢̕͜s͞͏̵ là rất es̵s̕͡ę̢n͞c̨e̢͟ ̴o̶̢͜f͏ ͟d́ar͟͞͠k̡͞n̢̡es̵̛͡tr̨̡̀h̴s͘ và dev͙̤̘̙ ! Vâng, vâng, những cái mặt trống rìs̨͘e từ f͟͢͏o̵͜͝n̶t̨ ̵o͏f̸̡͠ ͏͝fl͟͞a̵̷҉me̶̵͢ và ca͝s͜t́ xuống p̹̤̳̰r̮̦̥̥̞̫͑͂ͤ͑ͮ͒̑ï̄̌ͬͨe̦̗͔ͥͣ̆̾̂s̬̭̮̮̜ͭt̻̲̍sͫͣ̿ ̐͗̈ͤ͂ͦ̅f̭͚̪̻̣̩ͮ̒ṟͨ͌ͮ̅̓ỏ̝͓̝̣̟̼m̳͇̱̝͔͒ ͒ͫͧ͂̓̈̈́t̲̔̅̎͐h̺͈͍ͣͧ̿ē̪̼̪̻͉̪̙̐̽̎̉i̠͎̗͕̗̣̬̐̎͛r͓̫͌ͅ ̼a͑̈ͯͦ̍r̭͖̓ͬ̉̉ͤ͊ṡ̐ͪ̊̋̄̅t̫͎̹ͯ! A̵̵̛v͝é͜ŕ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 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͓͚͎̱̠̜!

Đừng hỏi làm sao tôi biết được.

Chúc may mắn.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bắt đầu với Oracle LiveSQL

  2. Chuyển VARCHAR2 thành Số

  3. Khắc phục lỗi cột thả trong Oracle 18c và 19c

  4. Các lựa chọn thay thế cho LIMIT và OFFSET để phân trang trong Oracle

  5. So sánh các chuỗi bỏ qua dấu trong SQL (ORACLE)