餐厅点餐系统:
有个订单表-->定单对应的菜表,订单对应的酒水表下面就是最恶心的(要求要一个订单的修改的详细记录),详细记录里面有:是顾客、前台还是服务员修改了菜单,添加/删除/修改了 哪些菜或酒水(以及菜或酒水的注释信息),修改了总订单表的备注信息,注释信息,修改时间。想半天没想明白怎么建
//总的订单表
create table order(
id number primary key,
oid number unique,
note varchar2(),
...//省略一些属性
)
//订单菜表
create table orderdish(
id number primary key,
oid number,
....
foreign key(oid) references order(oid) on delete cascade
...
)
//订单酒水表跟菜表差不多
现在需求要 记录订单之后修改的信息。网上有人让用触发器实现,可是我查看触发器半天教程还是无从下手
有个订单表-->定单对应的菜表,订单对应的酒水表下面就是最恶心的(要求要一个订单的修改的详细记录),详细记录里面有:是顾客、前台还是服务员修改了菜单,添加/删除/修改了 哪些菜或酒水(以及菜或酒水的注释信息),修改了总订单表的备注信息,注释信息,修改时间。想半天没想明白怎么建
//总的订单表
create table order(
id number primary key,
oid number unique,
note varchar2(),
...//省略一些属性
)
//订单菜表
create table orderdish(
id number primary key,
oid number,
....
foreign key(oid) references order(oid) on delete cascade
...
)
//订单酒水表跟菜表差不多
现在需求要 记录订单之后修改的信息。网上有人让用触发器实现,可是我查看触发器半天教程还是无从下手
create or replace trigger trigger_cai
before insert
on cai
for each row
declare
v1 number;
begin
select max(cid) into v1 from cai;
if(v1 is null) then
:new.cid:=1;
else
:new:cid:=v1+1;
end if;
end
我写错了吗???怎么不能自动生成cid呢
before update on cai for each row
begin
--用:old和:new 记录修改数据
--用sys_context记录 用户信息
end;
before insert
on cai
for each row
declare
v1 number;
begin
select max(cid) into v1 from cai;
:new.cid:=v1+1;
end;
这样能运行了