怎么去设计呢如果说 是做的一个网上选课系统,需要控制一个课程的选课人数,可以在选课表上面加一个字段最大
怎么去设计呢
如果说 是做的一个网上选课系统,需要控制一个课程的选课人数,可以在选课表上面加一个字段最大选课人数,和当前选课人数 对吧? 可不可以去设计一个 函数或者说过程 去实现当插入一条选课数据的时候 判断当前这门课程的最多选课人数,如果小于就可以插入,不行就不能插入,??? 如果可以希望 举个例子 或者代码
[解决办法]
1)一个课程表,包含最大选题人数
2)选题表,不用设置已选人数字段
3)触发器instead of实现超员则不插入数据,like this:
CREATE OR REPLACE TRIGGER simo_tab_insert
INSTEAD OF INSERT ON v_simo_tab
BEGIN
declare
v_id number;
begin
select count(*) into v_id from simo_tab where name = :new.name;
dbms_output.put_line('Simo>>>>>>>>v_id:'
[解决办法]
v_id);
if v_id>0 then
insert into simo_tab(id, name)
values (:NEW.id,:new.name);
end if;
end;
END;
[解决办法]
他是通过函数来判断是否对表有进行更改。如果函数返回1表明选课成功并且插入了记录和更改了当前选课的人数(+1),如果返回0,表明人数已满,选课不成功。
这样做和用过程做没什么区别啊。
