mirror of
https://codeberg.org/Offerel/SyncMarks-Webapp
synced 2025-12-28 06:54:14 +00:00
132 lines
4.6 KiB
SQL
132 lines
4.6 KiB
SQL
-- Create users table
|
|
CREATE TABLE IF NOT EXISTS `users` (
|
|
`userID` int(11) NOT NULL AUTO_INCREMENT,
|
|
`userName` varchar(255) NOT NULL,
|
|
`userType` int(10) unsigned NOT NULL,
|
|
`userHash` text NOT NULL,
|
|
`userLastLogin` int(10) unsigned DEFAULT NULL,
|
|
`sessionID` varchar(255) DEFAULT NULL,
|
|
`userOldLogin` int(10) unsigned DEFAULT NULL,
|
|
`uOptions` text DEFAULT NULL,
|
|
`userMail` varchar(255) DEFAULT NULL,
|
|
PRIMARY KEY (`userID`),
|
|
UNIQUE KEY `userID` (`userID`),
|
|
UNIQUE KEY `userName` (`userName`),
|
|
UNIQUE KEY `sessionID` (`sessionID`),
|
|
KEY `i2` (`userID`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
|
|
|
-- Create bookmark table
|
|
CREATE TABLE `bookmarks` (
|
|
`bmID` varchar(15) NOT NULL,
|
|
`bmParentID` varchar(15) DEFAULT NULL,
|
|
`bmIndex` int(10) unsigned NOT NULL,
|
|
`bmTitle` text DEFAULT NULL,
|
|
`bmType` text NOT NULL,
|
|
`bmURL` text DEFAULT NULL,
|
|
`bmAdded` text NOT NULL,
|
|
`bmModified` text DEFAULT NULL,
|
|
`userID` int(11) NOT NULL,
|
|
`bmSort` int(10) unsigned DEFAULT NULL,
|
|
PRIMARY KEY (`bmID`,`userID`),
|
|
KEY `userID` (`userID`),
|
|
KEY `bmParentID` (`bmParentID`,`userID`),
|
|
KEY `i1` (`bmURL`(255),`bmTitle`(255)),
|
|
CONSTRAINT `bookmarks_ibfk_1` FOREIGN KEY (`userID`) REFERENCES `users` (`userID`) ON DELETE CASCADE,
|
|
CONSTRAINT `bookmarks_ibfk_2` FOREIGN KEY (`bmParentID`, `userID`) REFERENCES `bookmarks` (`bmID`, `userID`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
|
|
|
-- Create clients table
|
|
CREATE TABLE IF NOT EXISTS `clients` (
|
|
`cid` varchar(255) NOT NULL,
|
|
`cname` text DEFAULT NULL,
|
|
`ctype` text NOT NULL,
|
|
`userID` int(11) NOT NULL,
|
|
`lastseen` text NOT NULL DEFAULT 0,
|
|
`fs` int(11) NOT NULL DEFAULT 0,
|
|
PRIMARY KEY (`cid`),
|
|
UNIQUE KEY `cid` (`cid`),
|
|
KEY `uid` (`userID`),
|
|
KEY `i3` (`cid`),
|
|
CONSTRAINT `clients_ibfk_1` FOREIGN KEY (`userID`) REFERENCES `users` (`userID`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
|
|
|
CREATE TABLE IF NOT EXISTS `pages` (
|
|
`pid` int(11) NOT NULL AUTO_INCREMENT,
|
|
`ptitle` varchar(250) NOT NULL,
|
|
`purl` text NOT NULL,
|
|
`ntime` int(11) NOT NULL,
|
|
`cid` varchar(255) DEFAULT NULL,
|
|
`nloop` int(11) NOT NULL DEFAULT 1,
|
|
`publish_date` int(11) NOT NULL,
|
|
`userID` int(11) NOT NULL,
|
|
PRIMARY KEY (`pid`),
|
|
KEY `userID` (`userID`),
|
|
KEY `cid` (`cid`),
|
|
CONSTRAINT `pages_ibfk_1` FOREIGN KEY (`userID`) REFERENCES `users` (`userID`) ON DELETE CASCADE,
|
|
CONSTRAINT `pages_ibfk_2` FOREIGN KEY (`cid`) REFERENCES `clients` (`cid`) ON DELETE SET NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
|
|
|
-- Create reset table
|
|
CREATE TABLE IF NOT EXISTS `reset` (
|
|
`tokenID` int(11) NOT NULL AUTO_INCREMENT,
|
|
`userID` int(11) NOT NULL,
|
|
`tokenTime` varchar(255) NOT NULL,
|
|
`token` varchar(255) NOT NULL,
|
|
PRIMARY KEY (`tokenID`),
|
|
UNIQUE KEY `autoindex_reset_2` (`token`),
|
|
UNIQUE KEY `autoindex_reset_1` (`tokenID`),
|
|
KEY `userID` (`userID`),
|
|
CONSTRAINT `reset_ibfk_1` FOREIGN KEY (`userID`) REFERENCES `users` (`userID`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
|
|
|
-- CREATE tokens table
|
|
CREATE TABLE IF NOT EXISTS `auth_token` (
|
|
`tID` int(11) NOT NULL AUTO_INCREMENT,
|
|
`userName` varchar(255) NOT NULL,
|
|
`pHash` varchar(255) NOT NULL,
|
|
`tHash` varchar(255) NOT NULL,
|
|
`exDate` int(11) NOT NULL,
|
|
PRIMARY KEY (`tID`),
|
|
KEY `authtoken_fk1` (`userName`),
|
|
CONSTRAINT `authtoken_fk1` FOREIGN KEY (`userName`) REFERENCES `users` (`userName`) ON DELETE CASCADE ON UPDATE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
|
|
|
-- CREATE ctokens table
|
|
CREATE TABLE IF NOT EXISTS `c_token` (
|
|
`tID` int(11) NOT NULL AUTO_INCREMENT,
|
|
`cid` varchar(255) DEFAULT NULL,
|
|
`tHash` varchar(255) NOT NULL,
|
|
`exDate` varchar(255) NOT NULL,
|
|
`userID` int(11) NOT NULL,
|
|
`cInfo` text DEFAULT NULL,
|
|
PRIMARY KEY (`tID`),
|
|
UNIQUE KEY `tID` (`tID`),
|
|
UNIQUE KEY `cid` (`cid`),
|
|
KEY `userID` (`userID`),
|
|
CONSTRAINT `c_token_ibfk_1` FOREIGN KEY (`userID`) REFERENCES `users` (`userID`) ON DELETE CASCADE,
|
|
CONSTRAINT `c_token_ibfk_2` FOREIGN KEY (`cid`) REFERENCES `clients` (`cid`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
|
|
|
-- Create index
|
|
CREATE INDEX IF NOT EXISTS `i1` ON `bookmarks` (`bmURL`(255), `bmTitle`(255));
|
|
CREATE INDEX IF NOT EXISTS `i2` ON `users` ( `userID`);
|
|
CREATE INDEX IF NOT EXISTS `i3` ON `clients` (`cid`);
|
|
|
|
-- Create triggers
|
|
@delimiter %%%;
|
|
CREATE TRIGGER IF NOT EXISTS
|
|
`bookmarks`.update_tokenchange AFTER
|
|
UPDATE
|
|
ON
|
|
`bookmarks`.`auth_token` FOR EACH row BEGIN
|
|
DELETE
|
|
FROM
|
|
`auth_token`
|
|
WHERE
|
|
`exDate` < UNIX_TIMESTAMP();
|
|
|
|
END;
|
|
%%%
|
|
@delimiter ;
|
|
%%% |