-- Elezioni (ID, Anno, TipoElezione) con ID chiave primaria
-- Partiti (Cod, Nome) con Cod chiave primaria
-- Risultati (Elezione, Partito, Seggi) con
--   chiave primaria formata da Elezione e Partito e 
--   vincoli di integrità referenziale
--   da Elezione a Elezioni(ID) Elezione
--   da Partito a Partiti(Cod)
PRAGMA foreign_keys = 1; --- SQLlite richiede esplicita attivazione dei vincoli di FK

DROP TABLE IF EXISTS Risultati;
DROP TABLE IF EXISTS Elezioni;
DROP TABLE IF EXISTS Partiti ;


CREATE TABLE Elezioni(
    ID integer NOT NULL PRIMARY KEY,
    Anno integer NOT NULL,
    TipoElezione CHARACTER(20) NOT NULL 
);

INSERT INTO Elezioni VALUES(1,2000,'Politiche');
INSERT INTO Elezioni VALUES(2,2004,'Europee');
INSERT INTO Elezioni VALUES(3,2004,'Politiche');
INSERT INTO Elezioni VALUES(4,2008,'Politiche');
INSERT INTO Elezioni VALUES(5,2009,'Europee');

DROP TABLE IF EXISTS Partiti ;
CREATE TABLE Partiti(
    Cod integer NOT NULL PRIMARY KEY,
    Nome CHARACTER(20) NOT NULL 
);
INSERT INTO Partiti VALUES(101,'Partito A');
INSERT INTO Partiti VALUES(102,'Partito B');
INSERT INTO Partiti VALUES(103,'Partito C');


DROP TABLE IF EXISTS Risultati;
CREATE TABLE Risultati(
    Elezione integer NOT NULL REFERENCES Elezioni(ID),
    Partito integer NOT NULL REFERENCES Partiti(Cod),
    Seggi integer NOT NULL,
    PRIMARY KEY (Elezione,Partito)
);
INSERT INTO Risultati VALUES(1,101,105);
INSERT INTO Risultati VALUES(1,102,95);
INSERT INTO Risultati VALUES(2,101,55);
INSERT INTO Risultati VALUES(2,102,35);
INSERT INTO Risultati VALUES(2,103,10);
INSERT INTO Risultati VALUES(3,101,70);
INSERT INTO Risultati VALUES(3,102,80);
INSERT INTO Risultati VALUES(3,103,50);
INSERT INTO Risultati VALUES(4,101,60);
INSERT INTO Risultati VALUES(4,102,90);
INSERT INTO Risultati VALUES(4,103,50);
INSERT INTO Risultati VALUES(5,101,51);
INSERT INTO Risultati VALUES(5,102,29);
INSERT INTO Risultati VALUES(5,103,20);



