122 lines
3.6 KiB
SQL
122 lines
3.6 KiB
SQL
-- CreateTable
|
|
CREATE TABLE "paises" (
|
|
"id" SERIAL NOT NULL,
|
|
"codigo" VARCHAR(3) NOT NULL,
|
|
"codigo_alpha2" VARCHAR(2) NOT NULL,
|
|
"nombre" VARCHAR(100) NOT NULL,
|
|
"nombre_en" VARCHAR(100) NOT NULL,
|
|
"capital" VARCHAR(100) NOT NULL,
|
|
"region" VARCHAR(50) NOT NULL,
|
|
"subregion" VARCHAR(50) NOT NULL,
|
|
"emoji" VARCHAR(10) NOT NULL,
|
|
"latitud" DECIMAL(10,8),
|
|
"longitud" DECIMAL(11,8),
|
|
"activo" BOOLEAN NOT NULL DEFAULT true,
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "paises_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "departamentos" (
|
|
"id" SERIAL NOT NULL,
|
|
"codigo" VARCHAR(2) NOT NULL,
|
|
"nombre" VARCHAR(100) NOT NULL,
|
|
"latitud" DECIMAL(10,8),
|
|
"longitud" DECIMAL(11,8),
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "departamentos_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "provincias" (
|
|
"id" SERIAL NOT NULL,
|
|
"codigo" VARCHAR(4) NOT NULL,
|
|
"codigo_dep" VARCHAR(2) NOT NULL,
|
|
"nombre" VARCHAR(100) NOT NULL,
|
|
"latitud" DECIMAL(10,8),
|
|
"longitud" DECIMAL(11,8),
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "provincias_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "distritos" (
|
|
"id" SERIAL NOT NULL,
|
|
"codigo" VARCHAR(6) NOT NULL,
|
|
"codigo_prov" VARCHAR(4) NOT NULL,
|
|
"codigo_dep" VARCHAR(2) NOT NULL,
|
|
"nombre" VARCHAR(100) NOT NULL,
|
|
"capital" VARCHAR(100),
|
|
"categoria" VARCHAR(30),
|
|
"altitud" DECIMAL(10,2),
|
|
"poblacion" INTEGER,
|
|
"latitud" DECIMAL(10,8),
|
|
"longitud" DECIMAL(11,8),
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "distritos_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "paises_codigo_key" ON "paises"("codigo");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "paises_codigo_alpha2_key" ON "paises"("codigo_alpha2");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "paises_codigo_idx" ON "paises"("codigo");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "paises_codigo_alpha2_idx" ON "paises"("codigo_alpha2");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "paises_nombre_idx" ON "paises"("nombre");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "paises_region_idx" ON "paises"("region");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "departamentos_codigo_key" ON "departamentos"("codigo");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "departamentos_codigo_idx" ON "departamentos"("codigo");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "departamentos_nombre_idx" ON "departamentos"("nombre");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "provincias_codigo_key" ON "provincias"("codigo");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "provincias_codigo_idx" ON "provincias"("codigo");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "provincias_codigo_dep_idx" ON "provincias"("codigo_dep");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "provincias_nombre_idx" ON "provincias"("nombre");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "distritos_codigo_key" ON "distritos"("codigo");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "distritos_codigo_idx" ON "distritos"("codigo");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "distritos_codigo_prov_idx" ON "distritos"("codigo_prov");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "distritos_codigo_dep_idx" ON "distritos"("codigo_dep");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "distritos_nombre_idx" ON "distritos"("nombre");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "provincias" ADD CONSTRAINT "provincias_codigo_dep_fkey" FOREIGN KEY ("codigo_dep") REFERENCES "departamentos"("codigo") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "distritos" ADD CONSTRAINT "distritos_codigo_prov_fkey" FOREIGN KEY ("codigo_prov") REFERENCES "provincias"("codigo") ON DELETE RESTRICT ON UPDATE CASCADE;
|