【发布时间】:2011-03-03 16:29:13
【问题描述】:
情况:假设您有一个包含组织、学生和课程购买的数据库,并且管理员想要为他们分配的课程获得退款。该软件默认不支持退款。您无权访问源代码,但可以在数据库中设置触发器。
数据库结构:
- 组织
- organization_id
- account_balance
- 学生
- student_id
- organization_id
- 购买
- student_id
- time_of_purchase
- amount_to_refund
一般的想法是,当从 purchases 表中删除一个条目(或多个!)时,触发器会运行以更新相应的 帐户余额组织。 amount_to_refund 可以为 null 或零,因此在这种情况下不予退款。如果 time_of_purchase 超过 30 天,也不应退款。
任何想法如何解决这个问题?我一直在用另一个触发器对其进行建模,但被 UPDATE ... FROM ... 语法所抛弃,我不能说我以前用过。我看过 MSDN,但我有点不知所措。
或者,我还想将行插入另一个包含退款金额和组织 ID 的表(此处未记录)。我只需要大致了解它的适用范围,其余的可能我自己就可以处理。
【问题讨论】: