Per questa specie di comportamento con un numero cambiante limitato ma possibile delle possibilità che sceglierei il seguente metodo, quello richiede appena alcuni cambiamenti da comportamento di difetto delle forme di oracolo.
Generare una tabella provvisoria
generare il cartesian_check globale della tabella provvisoria
((PEOPLEID (lo stesso tipo di altro),
interest_id (lo stesso tipo di altro),
INTERESSI (lo stesso tipo di altro),
varchar2 controllati (1))
SU COMMETTERE LE FILE DELLA CONSERVA;
definire il blocchetto del bambino sulla tabella provvisoria e contrassegnarlo come soltanto updateble;
soltanto gli interessi delle colonne e controllato devono visibile e controllato soltanto è updateble
nell'innesco pre-quiry del blocchetto del bambino
cancellazione da cartesian_check;
inserto in cartesian_check
prescelto: masterblock.people_id, interest_id, INTERESSI,
(prescelto decodificare (conteggio (*), 0, “N„, “Y ")
dal pi più people_interest
dove people_id di pi =: master.people_id
e PI.interest_id = it.inertestid) controllato
da interests_type ESSO;
nell'innesco del on_update
se controllato = “N„ allora
cancellazione dal pi più people_interest
dove people_id di pi =: people_id
e PI.interest_id =: interest_id;
concluder se;
se controllato = “Y„ allora
inserto in interests_type ESSO
prescelto: people_id: interest_id
da doppio
-- evitare il cambiamento Y - la N - del Y dall'inserimento della seconda annotazione
DOVE NON ESISTE (SELEZIONARE 1
DAL pi più people_interest
dove people_id di pi =: people_id
e PI.interest_id =: interest_id)
concluder se;