【发布时间】:2010-11-09 23:29:36
【问题描述】:
假设我有这些 sql 表:
a) 书
b) 客户
c) borrow_history (book_id, customer_id ...)
我可以从 borrow_history 定义两个引用外键(在删除级联时),引用 book 和 customer,所以:
- 与book相关的borrow_history记录将在书被删除时被删除。
- 与customer相关的borrow_history记录将在客户被删除时被删除。
但是我如何定义外键,当他没有 borrow_history 连接时,customer 将被删除,因此删除 book 也可以递归删除客户?
有可能吗,还是我必须使用触发器?
【问题讨论】:
-
当一本书(及其借贷历史)存在时,客户可以预先存在,但当该书(及其借贷历史)不复存在时,客户也不再存在?这听起来很奇怪。
-
目标是创建客户并同时创建第一个借用历史,换句话说,客户不能预先存在,预期不变是不能有客户任何与某些借阅历史无关的时间。
标签: sql foreign-keys