CREATE TABLE dipendente (
  dipendente_id INT NOT NULL PRIMARY KEY,
  nome_dipendente varchar(255) NOT NULL,
  conome_dipendente varchar(255) NOT NULL,
  anniDiServizio_dipendente INT,
  eta_dipendente INT
);
CREATE INDEX dipendente
ON dipendente (dipendente_id);
CREATE TABLE pompiere (
  pompiere_id INT NOT NULL PRIMARY KEY,
  nome_pompiere varchar(255) NOT NULL,
  conome_pompiere varchar(255) NOT NULL,
  anniDiServizio_pompiere INT,
  eta_pompiere INT
);
CREATE INDEX pompiere
ON pompiere (pompiere_id);
CREATE TABLE chiamataUtente (
  chiamata_id INT NOT NULL PRIMARY KEY,
  chiamata_descrizione varchar(255),
  chiamata_provenienza varchar(255) NOT NULL,
  chiamata_data date NOT NULL
);
CREATE INDEX chiamataUtente_id
ON chiamataUtente (chiamata_id);
CREATE TABLE ricevitoreChiamate (
  ricevitoreChiamate_id INT NOT NULL PRIMARY KEY,
  nome_ricevitoreChiamate varchar(255) NOT NULL,
  conome_ricevitoreChiamate varchar(255) NOT NULL,
  chiamata_id INT,
  CONSTRAINT chiamataUtente FOREIGN KEY (chiamata_id) 
  	                        REFERENCES chiamataUtente(chiamata_id)
);
CREATE INDEX ricevitoreChiamate_id
ON ricevitoreChiamate (ricevitoreChiamate_id);
CREATE TABLE caserma (
  caserma_id INT NOT NULL PRIMARY KEY,
  nome_caserma varchar(255) NOT NULL,
  distretto varchar(255),
  anni_caserma INT,
  
  dipendente_id INT,
  CONSTRAINT dipendente_id FOREIGN KEY (dipendente_id) 
  	                     REFERENCES dipendente(dipendente_id),
  pompiere_id INT,
  CONSTRAINT pompiere_id FOREIGN KEY (pompiere_id) 
  	                     REFERENCES pompiere(pompiere_id),
  ricevitoreChiamate_id INT,
  CONSTRAINT ricevitoreChiamate FOREIGN KEY (ricevitoreChiamate_id) 
  	                     REFERENCES ricevitoreChiamate(ricevitoreChiamate_id)
);
CREATE INDEX caserma
ON caserma (distretto);
ALTER TABLE pompiere
ADD CONSTRAINT distretto
FOREIGN KEY (distretto) REFERENCES caserma(distretto);
INSERT INTO dipendente VALUES (0001, 'Clark', 'Sales', 5, 10);
INSERT INTO dipendente VALUES (0002, 'Francesco', 'Randis', 0, 18);
INSERT INTO pompiere VALUES (0001, 'Clark', 'Sales', 5, 10);
INSERT INTO dipendente VALUES (0002, 'Francesco', 'Randis', 0, 18);
SELECT * FROM dipendente
SELECT * FROM pompiere
SELECT * FROM chiamataUtente
SELECT * FROM caserma