很早就想自己写写Oracle的函数和触发器,最近一个来自课本的小案例给了我这个机会。现在把我做的东西记录下来,作为一个备忘或者入门的朋友们的参考。
案例介绍:
招投标管理系统(数据库设计)。
数据表有以下两张:
招标书(招标书编号、项目名称、招标书内容、截止日期、状态)。
投标书(投标书编号、招标书编号、投标企业、投标书内容、投标日期、报价、状态)。
“招标书编号”为字符型,编号规则为 ZBYYYYMMDDNNN, ZB是招标的汉语拼音首字母,YYYYMMDD是当前日期,NNN是三位流水号。
“投标书编号”为字符型,编号规则为TB[11位招标书编号]NNN。
经过分析,我们可以得知两张表的关系。我们先创建数据结构,比如:
?
然后是生成招标的函数:
?
然后是投标书的编号生成函数:
?
然后在两个表中注册触发器,当新增数据的时候动态生成编号!
招标书触发器,用于动态生成招标书编号:
?
然后是投标书的触发器:
?
然后插入数据测试吧:
以上只是个人的一些观点,如果您不认同或者能给予指正和帮助,请不吝赐教。