Re: Nested Sequence
From: WilkinsonP <wilkinsonp_at_aol.com>
Date: 1997/10/20
Message-ID: <19971020210800.RAA09502_at_ladder01.news.aol.com>#1/1
Peter Wilkinson Received on Mon Oct 20 1997 - 00:00:00 CEST
Date: 1997/10/20
Message-ID: <19971020210800.RAA09502_at_ladder01.news.aol.com>#1/1
Hi,
From what you have written it looks like you are using SEQUECNE number to
identify employers/contacts to the end user. This should NOT be done. A
single sequence is required for use in the primary key for each of your tables
e.g. EMP_SEQ for Employers table and CON_SEQ for contacts table. Use
CG_CODE_CONTROLS to record the actuale employers number. This will provide a
consecutive sequence of numbers, which SEQUECES WILL NOT. Next use a
database trigger to calculate the next contact number when the new record in
inserted
e.g.
Employer table ID NOT NULL NUMBER; EMP_NO NOT NULL NUMBER(5,0); Primary Key = ID Unique Key = EMP_NO Contacts table ID NOT NULL NUMBER; EMP_ID NOT NULL NUMBER; CONTACT_NO NOT NULL NUMBER; Primary Key = ID Unique Key = EMP_ID,CONTACT_NO EMP_ID References ID IN Employer you now new an ON-INSERT database trigger for Contacts parameters = EMP_ID select max(contact_no)+1 into contact_no from contacts where emp_id = :emp_id Advantages There will be no gaps in employer numbers Contacts can be moved to different companies. If contact leaves the others can be shuffeled to remove any gap in thecontact numbers.
Peter Wilkinson Received on Mon Oct 20 1997 - 00:00:00 CEST