drop table scelte cascade constraint;
drop table acquisti cascade constraint;
drop table sessioni cascade constraint;
drop table oggetti cascade constraint;
 
create table acquisti
   (sessione        number      CONSTRAINT nn_sessioneCarr NOT NULL,
    oggetto         number      CONSTRAINT nn_oggettoCarr NOT NULL
   );

create table scelte
   (sessione        number      CONSTRAINT nn_sessioneSce NOT NULL,
    oggetto         number      CONSTRAINT nn_oggettoSce NOT NULL
   );

create table sessioni
   (idSessione        number      CONSTRAINT pk_idSessione PRIMARY KEY,
    nomeUtente        varchar(30) CONSTRAINT nn_nomeUtente NOT NULL,
    annoNascita       varchar(4),
    timeStamp         date
   );

create table oggetti
   (idOggetto     number          CONSTRAINT pk_idOggetto PRIMARY KEY,
    descrizione   varchar(50)     CONSTRAINT nn_descrizione NOT NULL,
    prezzo        number          CONSTRAINT nn_prezzo NOT NULL
   );

alter table acquisti add
CONSTRAINT fk_sessioneCarr 
FOREIGN KEY (sessione)
REFERENCES sessioni
ON DELETE CASCADE;

alter table acquisti add
CONSTRAINT fk_oggettoCarr 
FOREIGN KEY (oggetto)
REFERENCES oggetti;

alter table scelte add
CONSTRAINT fk_sessioneSce 
FOREIGN KEY (sessione)
REFERENCES sessioni
ON DELETE CASCADE;

alter table scelte add
CONSTRAINT fk_oggettoSce 
FOREIGN KEY (oggetto)
REFERENCES oggetti;


drop sequence idSessioneSeq;
drop sequence idOggettoSeq;

create sequence idSessioneSeq
increment by 1
start with 1
maxvalue 9999999
cycle;

create sequence idOggettoSeq
increment by 1
start with 1
maxvalue 9999999
cycle;

insert into oggetti
values (idOggettoSeq.nextval, 'Fiat 500', 8000);

insert into oggetti
values (idOggettoSeq.nextval, 'Enciclopedia storica Einaudi', 800);

insert into oggetti
values (idOggettoSeq.nextval, 'Palmare Cassiopeia 56GH', 300);

insert into oggetti
values (idOggettoSeq.nextval, 'Pentium 800MHz, 256MB, Monitor 17', 1000);

insert into oggetti
values (idOggettoSeq.nextval, 'Detersivo Dash 4 kg', 7);

insert into oggetti
values (idOggettoSeq.nextval, 'Harry Potter, The Prisoner of Azkaban', 8);

commit;








