db.exec("CREATE TABLE IF NOT EXISTS regles_voisinage (id VARCHAR(30) PRIMARY KEY REFERENCES automates(nom), type INTEGER NOT NULL, rayon INTEGER)");
db.exec("CREATE TABLE IF NOT EXISTS coord_voisinage (id VARCHAR(30) REFERENCES automates(nom) NOT NULL, x INTEGER NOT NULL, y INTEGER NOT NULL)");
db.exec("CREATE TABLE IF NOT EXISTS reseaux (id INTEGER PRIMARY KEY, nom VARCHAR(30) NOT NULL, h INTEGER NOT NULL, l INTEGER NOT NULL, automate VARCHAR(30) REFERENCES automates(nom) NOT NULL)");
db.exec("CREATE TABLE IF NOT EXISTS EnsembleEtats (id INTEGER PRIMARY KEY, reseau INTEGER REFERENCES reseau(id) NOT NULL,UNIQUE(reseau))");
db.exec("CREATE TABLE IF NOT EXISTS EnsembleEtats (id INTEGER PRIMARY KEY, automate VARCHAR(30) REFERENCES automates(nom) NOT NULL,UNIQUE(automate));");
db.exec("CREATE TABLE IF NOT EXISTS Etats (ensemble INTEGER REFERENCES EnsembleEtats(id) NOT NULL, indice INTEGER NOT NULL, label VARCHAR NOT NULL, r INTEGER NOT NULL, g INTEGER NOT NULL, b INTEGER NOT NULL, CHECK(indice>=0), CHECK(r>=0), CHECK(r<=255), CHECK(g>=0), CHECK(g<=255), CHECK(b>=0), CHECK(b<=255), PRIMARY KEY (ensemble, indice))");
db.exec("CREATE TABLE IF NOT EXISTS Cellules (reseau INTEGER REFERENCES reseau(id) NOT NULL, ensemble INTEGER REFERENCES EnsembleEtats(id) NOT NULL, etat INTEGER REFERENCES Etats(indice) NOT NULL, x INTEGER NOT NULL, y INTEGER NOT NULL);");