假设我有这些sql表:
a)预订
b)客户
c) borrow_history (book_id,customer_id ......)
我可以从 borrow_history 定义两个引用外键(在删除级联上),引用 book 和 customer ,所以:
但是如何以某种方式定义外键,客户将在没有 borrow_history 连接时删除,因此删除 book < / strong>还可以递归删除客户?
是否可能,或者我是否必须使用触发器?
答案 0 :(得分:2)
你必须使用触发器。
无论如何,只有在没有书籍的情况下才能删除用户 - 其他因素如上次活动日期很重要。
我会编写一个脚本(并使用CRON运行)来删除没有任何borrow_history的用户,并且在上一次操作后超过N天。
另一个提示 - borrow_history指向书中的外键应该设置为ON DELETE RESTRICT。如果借书(或借阅),则不应删除