78 lines
2.4 KiB
SQL
78 lines
2.4 KiB
SQL
-- CreateTable
|
|
CREATE TABLE "User" (
|
|
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
|
"name" TEXT NOT NULL,
|
|
"password" TEXT NOT NULL,
|
|
"admin" BOOLEAN NOT NULL DEFAULT false
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Group" (
|
|
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
|
"name" TEXT NOT NULL
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Device" (
|
|
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
|
"name" TEXT NOT NULL,
|
|
"mac" TEXT NOT NULL,
|
|
"broadcast" TEXT NOT NULL DEFAULT '255.255.255.255',
|
|
"port" INTEGER NOT NULL DEFAULT 9,
|
|
"packets" INTEGER NOT NULL DEFAULT 3
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "_GroupToUser" (
|
|
"A" INTEGER NOT NULL,
|
|
"B" INTEGER NOT NULL,
|
|
CONSTRAINT "_GroupToUser_A_fkey" FOREIGN KEY ("A") REFERENCES "Group" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
|
|
CONSTRAINT "_GroupToUser_B_fkey" FOREIGN KEY ("B") REFERENCES "User" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "_DeviceToUser" (
|
|
"A" INTEGER NOT NULL,
|
|
"B" INTEGER NOT NULL,
|
|
CONSTRAINT "_DeviceToUser_A_fkey" FOREIGN KEY ("A") REFERENCES "Device" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
|
|
CONSTRAINT "_DeviceToUser_B_fkey" FOREIGN KEY ("B") REFERENCES "User" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "_DeviceToGroup" (
|
|
"A" INTEGER NOT NULL,
|
|
"B" INTEGER NOT NULL,
|
|
CONSTRAINT "_DeviceToGroup_A_fkey" FOREIGN KEY ("A") REFERENCES "Device" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
|
|
CONSTRAINT "_DeviceToGroup_B_fkey" FOREIGN KEY ("B") REFERENCES "Group" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "User_name_key" ON "User"("name");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Group_name_key" ON "Group"("name");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Device_name_key" ON "Device"("name");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Device_mac_key" ON "Device"("mac");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "_GroupToUser_AB_unique" ON "_GroupToUser"("A", "B");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "_GroupToUser_B_index" ON "_GroupToUser"("B");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "_DeviceToUser_AB_unique" ON "_DeviceToUser"("A", "B");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "_DeviceToUser_B_index" ON "_DeviceToUser"("B");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "_DeviceToGroup_AB_unique" ON "_DeviceToGroup"("A", "B");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "_DeviceToGroup_B_index" ON "_DeviceToGroup"("B");
|