Repository navigation
Expand file tree
/
Copy pathschema.sql
More file actions
68 lines (61 loc) · 1.91 KB
/
Copy pathschema.sql
File metadata and controls
68 lines (61 loc) · 1.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
BEGIN TRANSACTION;
CREATE TABLE IF NOT EXISTS provincias (
id INTEGER PRIMARY KEY,
nombre TEXT NOT NULL
);
CREATE UNIQUE INDEX IF NOT EXISTS idx_provincias_nombre
ON provincias(nombre);
CREATE TABLE IF NOT EXISTS cantones (
id INTEGER PRIMARY KEY,
provincia_id INTEGER NOT NULL REFERENCES provincias(id),
nombre TEXT NOT NULL
);
CREATE INDEX IF NOT EXISTS idx_cantones_nombre
ON cantones(nombre);
CREATE TABLE IF NOT EXISTS distritos (
id INTEGER PRIMARY KEY,
canton_id INTEGER NOT NULL REFERENCES cantones(id),
nombre TEXT NOT NULL
);
CREATE INDEX IF NOT EXISTS idx_distritos_nombre
ON distritos(nombre);
CREATE TABLE IF NOT EXISTS distritos_electorales (
id INTEGER PRIMARY KEY,
distrito_id INTEGER NOT NULL REFERENCES distritos(id),
nombre TEXT NOT NULL
);
CREATE INDEX IF NOT EXISTS idx_distritos_electorales_nombre
ON distritos_electorales(nombre);
CREATE TABLE IF NOT EXISTS centros (
id INTEGER PRIMARY KEY,
distrito_electoral_id INTEGER NOT NULL REFERENCES distritos_electorales(id),
nombre TEXT NOT NULL,
direccion TEXT NOT NULL,
url TEXT NOT NULL,
UNIQUE(distrito_electoral_id, nombre, direccion)
);
CREATE TABLE IF NOT EXISTS juntas (
id INTEGER PRIMARY KEY,
centro_id INTEGER NOT NULL REFERENCES centros(id)
);
CREATE TABLE IF NOT EXISTS personas (
id INTEGER PRIMARY KEY,
cedula TEXT NOT NULL,
expiracion INTEGER NOT NULL,
nombre TEXT NOT NULL,
apellido_1 TEXT NOT NULL,
apellido_2 TEXT NOT NULL,
genero INTEGER NOT NULL
);
CREATE UNIQUE INDEX IF NOT EXISTS idx_personas_cedula
ON personas(cedula);
CREATE TABLE IF NOT EXISTS padron (
persona_id INTEGER NOT NULL REFERENCES personas(id),
junta_id INTEGER NOT NULL REFERENCES juntas(id),
UNIQUE(persona_id, junta_id)
);
CREATE UNIQUE INDEX IF NOT EXISTS idx_padron_persona_id
ON padron(persona_id);
CREATE INDEX IF NOT EXISTS idx_padron_junta_id
ON padron(junta_id);
COMMIT TRANSACTION;