ã«ã¹ã±ãŒãããªãŒã
ããŒã¿ããŒã¹ç®¡çã«ãããCascade Deleteã®ãã¯ãŒãçºèŠããŠãã ããããã®ã¬ã€ãã§ã¯ãããã©ãŒãã³ã¹ãæé©åããããã®å®è£ ãå©ç¹ããªã¹ã¯ã«ã€ããŠèª¬æããŸãã

ããŒã¿ããŒã¹ã«ãããããŒã¿ã®å¹ççãªç®¡çã¯ã仿¥ã®ããžã¿ã«ç°å¢ã«ãããŠäžå¯æ¬ ã§ãããªã¬ãŒã·ã§ãã«ã»ããŒã¿ããŒã¹ã®æ©èœã§ããCascade Deleteã¯ã芪åé¢ä¿ã«ããã¬ã³ãŒãã®åŠçãç°¡ç¥åããããšã§ãããŒã¿ã®æŽåæ§ãç¶æããäžã§éèŠãªåœ¹å²ãæ ã£ãŠããŸãããã®ãã£ã¹ã«ãã·ã§ã³ã§ã¯ãCascade Deleteã®è©³çްãå®è£ ãå©ç¹ãæ¬ ç¹ãããã³å¹çãæå€§åããããã®ãã¹ããã©ã¯ãã£ã¹ãçè§£ããããšãç®çãšããŠããŸãã
ãªã¬ãŒã·ã§ãã«ã»ããŒã¿ããŒã¹ç®¡çã·ã¹ãã ã®åºç€ãäž»ããŒããã³å€éšããŒå¶çŽããããŠCascade Deleteã®ã¡ã«ããºã ãæ¢æ±ããŸãããŸãã MySQLãPostgreSQLã SQL Serverãªã©ãããŸããŸãªããŒã¿ããŒã¹ã·ã¹ãã ã«ããããã®æ©èœã®å®çšçãªå®è£ ã«ã€ããŠãæœåšçãªèœãšã穎ãããã©ãŒãã³ã¹ã®ããã«ããã¯ãšããããŠèª¬æããŸãã
Cascade Deleteã® ãã¹ããã©ã¯ãã£ã¹ãš æŠç¥ãæãäžããããšã§ãèªè ã¯ããªã¹ã¯ã軜æžããªããã¡ãªãããæå€§åããæ å ±ã«åºã¥ããæ±ºå®ãè¡ãããšãã§ããããã«ãªããŸãããã®å æ¬çãªåæã«ãããããŒã¿ããŒã¹ç®¡çè ãéçºè ãITå°éå®¶ã¯ãé¢é£ã¬ã³ãŒãããããã管çããããŒã¿ããŒã¹ã®ããã©ãŒãã³ã¹ãåäžãããããšãã§ããŸãã
SQL Serverã§Cascade DELETE ãå€éšããŒãšã¯äœã§ããïŒ
SQL Server ã®Cascade DELETE ãæã€å€éšããŒã¯ã ãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ 管çã·ã¹ãã ã§é¢é£ããããŒãã«éã®åç §æŽåæ§ãç¶æããããã«äœ¿çšããã匷åãªæ©èœã§ãããå€éšããŒã¯ãå¥ã®ããŒãã«ã®äž»ããŒãåç §ããã«ã©ã ãŸãã¯ã«ã©ã ã®ã»ããã§ãããããã«ãã£ãŠ2ã€ã®ããŒãã«éã®ãªã³ã¯ã確ç«ãããŸããCascade DELETE ãªãã·ã§ã³ã¯ã芪ã¬ã³ãŒããåé€ããããšãã«ã察å¿ããåã¬ã³ãŒããèªåçã«åé€ããã«ãŒã«ã匷å¶ããã
ããšãã°ã'Orders' ãš'Order_Items.' ã®2ã€ã®ããŒãã«ãæã€ é»ååååŒã¢ããªã±ãŒã·ã§ã³ãèã㊠ã¿ãŸãããã'Orders' ããŒãã«ã«ã¯äžè¬çãªæ³šææ å ±ãããã'Order_Items' ããŒãã«ã«ã¯å泚æã«é¢é£ããåã ã®ã¢ã€ãã ããããŸãã'Order_Items' ããŒãã«ã«Cascade DELETE ãšã®å€éšããŒãå®çŸ©ãã'Orders' ããŒãã«ã®äž»ããŒãåç §ããããšã§ã'Orders' ããŒãã«ããæ³šæãåé€ããããšã'Order_Items' ããŒãã«ã®ãã¹ãŠã®é¢é£é ç®ãèªåçã«åé€ãããããã«ããŸãããã®ä»çµã¿ã¯ãããŒã¿ã®äžè²«æ§ãç¶æãã芪ããŒãã«ãšã®é©åãªæ¥ç¶ãæ¬ ããå€å ã®ã¬ã³ãŒãã鲿¢ããã®ã«åœ¹ç«ã¡ãŸãã
ã«ã¹ã±ãŒãåäœãçºçããå Žå
ãœãããŠã§ã¢éçº ã«ãããã«ã¹ã±ãŒãåäœã¯ãäžè¬çã«ãã·ã¹ãã ã®ããéšåã«ãããåäœã倿Žããã·ã¹ãã ã®ä»ã®éšåã«ãããäžé£ã®é¢é£ããåäœãçµæãèªçºãããšãã«çºçããŸãããã®ãããªåäœã¯ã ãŠã§ãéçº ã«ãããã«ã¹ã±ãŒãã¹ã¿ã€ã«ã·ãŒãïŒCSS ïŒãããŒã¿ããŒã¹ç®¡çã·ã¹ãã ã«ãããã«ã¹ã±ãŒãæŽæ°ãšåé€ããœãããŠã§ã¢ã¢ããªã±ãŒã·ã§ã³ã«ãããã€ãã³ãäŒæ¬ãªã©ãããŸããŸãªæèã§äžè¬çã«èгå¯ãããŠããŸããããŒã¿ããŒã¹ã®ã³ã³ããã¹ãã§ã¯ãæŽæ°ãåé€ãªã©ã®ç¹å®ã®ããŒã¿æäœãªãã¬ãŒã·ã§ã³ã芪ããŒãã«ã§å®è¡ãããé¢é£ããåããŒãã«ã«å¯Ÿå¿ãã倿Žãçºçããå Žåã«ãã«ã¹ã±ãŒãåäœãçºçããŸãã
ããšãã°ããããžã§ã¯ã管çã¢ããªã±ãŒã·ã§ã³ã§ã¯ã"Projects" ããŒãã«ãš"Tasks" ããŒãã«ããããåã¿ã¹ã¯ã¯ç¹å®ã®ãããžã§ã¯ãã«é¢é£ä»ããããŠããŸãããããã®ããŒãã«éã§ã«ã¹ã±ãŒãåäœãããå€éšããŒå¶çŽã䜿çšãããšã"Projects" ããŒãã«ã®ãããžã§ã¯ããåé€ãããšã"Tasks" ããŒãã«ã®é¢é£ãããã¹ãŠã®ã¿ã¹ã¯ãèªåçã«åé€ãããŸããããã«ãããã¬ã³ãŒãã®åãããŒããé²ãã倿Žããã£ãå Žåã§ãçžäºã«é¢é£ããããŒã¿ãåæããããããã·ã¹ãã å šäœã®ããŒã¿ã®æŽåæ§ãšäžè²«æ§ãç¶æããããšãã§ããŸãã
PostgreSQL DELETE ã«ã¹ã±ãŒã
PostgreSQL DELETE CASCADEã¯ããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã·ã¹ãã ã«ãããŠåç §æŽåæ§ãšããŒã¿ã®äžè²«æ§ãç¶æããããã«äžå¯æ¬ ã§ããããã¯ã芪ããŒãã«ã®ã¬ã³ãŒãã®åé€ãåããŒãã«ã®é¢é£ã¬ã³ãŒãã«èªåçã«äŒæãããå€å ãšãªã£ãã¬ã³ãŒããæ®ããªãããã«ããŸãããã®æ©èœãå®è£ ããã«ã¯ãåããŒãã«ã«CASCADE ãªãã·ã§ã³ã§å€éšããŒå¶çŽãå®çŸ©ãã芪ããŒãã«ã®äž»ããŒãåç §ããã
äŸãã°ã"Authors" ãš"Posts" ã®2ã€ã®ããŒãã«ãæã€ããã°ã¢ããªã±ãŒã·ã§ã³ãèããŠã¿ãŸãããã"Authors" ããŒãã«ã«ã¯åã ã®èè ã«é¢ããæ å ±ãå«ãŸãã"Posts" ããŒãã«ã«ã¯ãã®èè ãäœæããããã°èšäºã®è©³çްãä¿åãããŠããŸãã"Authors" ããŒãã«ã®äž»ããŒãåç §ãã"Posts" ããŒãã«ã« DELETE CASCADE ã®å€éšããŒå¶çŽãå®çŸ©ããããšã§ã"Authors" ããŒãã«ããèè ãåé€ããããšã"Posts" ããŒãã«ã®ãã¹ãŠã®é¢é£ããã°èšäºãèªåçã«åé€ãããããã«ããŸãããã®ã¡ã«ããºã ã«ãããã¢ããªã±ãŒã·ã§ã³å šäœã®ããŒã¿ã®äžè²«æ§ãç¶æããæçš¿ã®åãããŒããé²ãã芪ããŒãã«ã®å€æŽã«é£åããŠé¢é£ããŒã¿ãæŽæ°ãŸãã¯åé€ãããããã«ããŸãã
Postgresã§DELETE Cascadeã䜿çšããã¿ã€ãã³ã°ã¯ïŒ
Postgresã®DELETE CASCADEã¯ãã¢ããªã±ãŒã·ã§ã³ã®é¢é£ããŒãã«éã§åç §æŽåæ§ãšããŒã¿ã®äžè²«æ§ãç¶æãããå Žåãç¹ã«èŠªããŒãã«ããã¬ã³ãŒããåé€ãããšãåããŒãã«ã«å€å ã¬ã³ãŒããæ®ãå¯èœæ§ãããå Žåã«äœ¿çšãããã¹ãã§ããDELETE CASCADE ã䜿çšãããšã芪ã¬ã³ãŒããåé€ããããšãã«ãåããŒãã«ã®é¢é£ã¬ã³ãŒãããã¹ãŠèªåçã«åé€ãããããŒã¿ã®äžæŽåãé²ãããšã³ãã£ãã£éã®é¢ä¿ãç¶æããããšãã§ããããã«ãªããŸãã
ããšãã°ã"Courses" ãš"Enrollments." ã®2ã€ã®ããŒãã«ãæã€ãªã³ã©ã€ã³åŠç¿ãã©ãããã©ãŒã ãèããŠã¿ãŸãããã"Courses" ããŒãã«ã«ã¯åã ã®ã³ãŒã¹ã«é¢ããæ å ±ãããã"Enrollments" ããŒãã«ã«ã¯åã³ãŒã¹ã«ç»é²ãããŠããçåŸãèšé²ãããŠããŸãã"Courses" ããŒãã«ããã³ãŒã¹ãåé€ãããå ŽåãããŒã¿ã®äžè²«æ§ãä¿ã€ããã«"Enrollments" ããŒãã«ããé¢é£ããåè¬èšé²ããã¹ãŠåé€ããããšã極ããŠéèŠã§ãã"Courses" ããŒãã«ã®äž»ããŒãåç §ãã"Enrollments" ããŒãã«ã« DELETE CASCADE ã®å€éšããŒå¶çŽãå®è£ ããããšã§ãã³ãŒã¹ãåé€ãããšãé¢é£ãããã¹ãŠã®ç»é²ã¬ã³ãŒããåé€ãããããã«ããŸãã
DELETE CASCADEã¯æ éã«æ±ããªããã°ãæå³ããªãããŒã¿æå€±ã«ã€ãªããå¯èœæ§ããããããDELETE CASCADEã䜿çšããããšã®æå³ãæ éã«æ€èšããããšãéèŠã§ãããããã£ãŠãã«ã¹ã±ãŒãåé€ãå®è¡ããåã«ãåžžã«ã¢ããªã±ãŒã·ã§ã³ã®èŠä»¶ãšããŒãã«éã®é¢ä¿ãè©äŸ¡ããå¿ èŠããããŸãã
Postgresã§DELETE Cascadeã䜿çšããã«ã¯ïŒ
Postgresã§DELETE CASCADEã䜿çšããã«ã¯ãåããŒãã«ãšèŠªããŒãã«ã®é¢ä¿ãå®çŸ©ããéã«CASCADEãªãã·ã§ã³ãæå®ããåããŒãã«ã«å€éšããŒå¶çŽãäœæããå¿ èŠããããŸããããã«ããã芪ããŒãã«ã®ã¬ã³ãŒããåé€ããããšãåããŒãã«ã®é¢é£ãããã¹ãŠã®ã¬ã³ãŒããèªåçã«åé€ãããããã«ãªããŸããããã§ã¯ãPostgresã§DELETE CASCADEãå®è£ ããæ¹æ³ãã¹ããããã€ã¹ãããã§èª¬æããŸãã
-
ãŸãã芪ããŒãã«ãšåããŒãã«ãå®çŸ©ããŸããäŸãã°ã"Authors" ãš"Books." ã®2ã€ã®ããŒãã«ãæã€å³æžé€šç®¡çã·ã¹ãã ãèããŠã¿ãŸãããã"Authors" ããŒãã«ã¯åã ã®èè ã«é¢ããæ å ±ãå«ã¿ã"Books" ããŒãã«ã¯ãããã®èè ãæžããæ¬ã®è©³çްãå«ã¿ãŸãã
-
芪ããŒãã«ïŒäŸïŒ"Authors," ïŒãäœæããäž»ããŒã«ã©ã ãèšå®ããã

- 芪ããŒãã«ã®äž»ããŒãåç §ããå€éšããŒã»ã«ã©ã ãæã€åããŒãã«ãäŸãã°"Books" ãäœæããDELETE CASCADE ãªãã·ã§ã³ãæå®ããŸãã

å€éšããŒå¶çŽãšDELETE CASCADEã䜿çšãããšã"Authors" ããŒãã«ããèè ãåé€ããããšã"Books" ããŒãã«ã®ãã¹ãŠã®é¢é£æžç±ãèªåçã«åé€ãããããŒã¿ã®æŽåæ§ãšåç §æŽåæ§ãç¶æãããŸãã
DELETE CASCADEã¯ãæ³šææ·±ã管çããªããšãæå³ããªãããŒã¿æ¶å€±ã«ã€ãªããå¯èœæ§ããããããæ³šæããŠäœ¿çšããããšãå¿ããªãã§ãã ãããã«ã¹ã±ãŒãåé€ã宿œããåã«ãåžžã«ã¢ããªã±ãŒã·ã§ã³ã®èŠä»¶ãšããŒãã«éã®é¢ä¿ãè©äŸ¡ããŠãã ããã
Postgresã«ãããDELETE Cascadeã®åäœã¯ïŒ
Postgresã®DELETE CASCADEã¯ããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã®ããŒã¿ã®äžè²«æ§ãšåç §æŽåæ§ãç¶æããããã«äžå¯æ¬ ãªã¡ã«ããºã ã§ããããã¯ã芪ããŒãã«ããã¬ã³ãŒããåé€ããããšãåããŒãã«ã®ãã¹ãŠã®é¢é£ã¬ã³ãŒããèªåçã«åé€ãããããšãä¿èšŒããŸããDELETE CASCADEãPostgresã§ã©ã®ããã«æ©èœãããã説æããããã«ãå®çšçãªäŸãèããŠã¿ãŸãããã
"Professors" ãš"Courses" ã®2ã€ã®ããŒãã«ãæã€å€§åŠç®¡çã·ã¹ãã ãæ³åããŠãã ããã"Professors" ããŒãã«ã¯åã ã®ææã«é¢ããè©³çŽ°ãæ ŒçŽãã"Courses" ããŒãã«ã¯ãããã®ææãæããã³ãŒã¹ã«é¢ããæ å ±ãæ ŒçŽããŸããåã³ãŒã¹ã¯1äººã®ææã«é¢é£ä»ããããŸãã
- äž»ããŒã«ã©ã ãæã€"Professors" ããŒãã«ãäœæããã

- "Professors" ããŒãã«ã®äž»ããŒãåç §ããå€éšããŒã«ã©ã ãæã€"Courses" ããŒãã«ãäœæããDELETE CASCADE ãªãã·ã§ã³ãæå®ããŸãã

- ããŠã2äººã®ææãšããã€ãã®ã³ãŒã¹ãããããã®ããŒãã«ã«æ¿å ¥ãããšä»®å®ããŸãããã

ãã®æç¹ã§ã"Courses" ããŒãã«ã«ã¯ãããããã®ææã«ãªã³ã¯ããã 3 ã€ã®ã¬ã³ãŒããå«ãŸããŠããŸãã"Professors" ããŒãã«ãã John Doe ææ (ID: 1) ãåé€ããããšã«ããå Žåã

DELETE CASCADEå¶çŽã«ãããPostgresã¯èªåçã«é¢é£ããã³ãŒã¹('Math 101' and 'Physics 101')ã"Courses" ããŒãã«ããåé€ããŸããããã«ãããããŒã¿ããŒã¹ã¯åç §æŽåæ§ãšããŒã¿ã®äžè²«æ§ãç¶æããã³ãŒã¹ã¬ã³ãŒããæ®ãããšã¯ãããŸããã
çµè«
çµè«ãšããŠãããŒã¿ããŒã¹ã«ãããå¹ççãªããŒã¿ç®¡çã¯ãããžã¿ã«åãé²ãçŸä»£ç€ŸäŒã«ãããŠæ¥µããŠéèŠã§ãããCascade Deleteã¯ãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã®åŒ·åãªæ©èœã§ã芪åé¢ä¿ã«ããé¢é£ã¬ã³ãŒãã®åãæ±ããå¹çåããããŒã¿ã®æŽåæ§ãšäžè²«æ§ã確ä¿ããŸãããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ç®¡çã·ã¹ãã ã®åºç€ãäž»ããŒããã³å€éšããŒå¶çŽãCascade Deleteã®ã¡ã«ããºã ãæ¢ãããšã§ããã®å®è£ ãå©ç¹ãæ¬ ç¹ããã¹ããã©ã¯ãã£ã¹ãå æ¬çã«çè§£ã§ããããã«ããŸããã
MySQLãPostgreSQLãSQL Serverãªã©ãããŸããŸãªããŒã¿ããŒã¹ã·ã¹ãã ã®å®è·µçãªäŸãšè§£èª¬ã«ãããèªè ã¯æœåšçãªãªã¹ã¯ã軜æžããªãããCascade Deleteã®å¹çãæå€§åããããã®ååãªç¥èã身ã«ã€ããããšãã§ããŸãããã®è©³çްãªåæã«ãããããŒã¿ããŒã¹ç®¡çè ãéçºè ãITå°éå®¶ã¯ãããŒã¿ããŒã¹ã®ããã©ãŒãã³ã¹ãåäžãããé¢é£ã¬ã³ãŒãã广çã«ç®¡çããæçµçã«ã¯ãããå ç¢ã§ä¿¡é Œæ§ã®é«ãããŒã¿ã€ã³ãã©ã«è²¢ç®ããããšãã§ããŸãã


