题目是这样的:
医院门诊挂号,要求号连续,并且退的号要能重用。每次挂号向号表中插入一条记录,退号从号表中删除一条记录,请设计一个方案来实现
可以考虑sequence
挂号、退号均使用存储过程
表结构:
create table register(
id number(10) primary key, --连续号
section varchar2(20), --挂号科室
register_date date --挂号日期 );
求助!!!!!!!!!
------解决思路----------------------
路过!建两个表,一个表示挂号的表,一个表示退号表(按照数字小大来排序);每次挂号的时候都是查询退号表里有没有数据,没有则插入挂号表里;挂号的时候是按照递增的顺序来插入,1,2,...10.如果中间号码为6的退号了,把这个号码6存入退号表。再有人要挂号,先查询退号表里有没有,如果有,把这个号码6拿出来挂号,并且把这个号码再存入挂号表,从退号表里把这条数据删除。
------解决思路----------------------
一个挂号表,一个号码库,
挂号时,从号码库中找到最小的号,移动到挂号表。
退号时,从挂号表中删除,并把该号移动到号码库中。