75 lines
2.2 KiB
MySQL
75 lines
2.2 KiB
MySQL
|
CREATE TABLE IF NOT EXISTS `settings` (
|
||
|
`setting_key` VARCHAR(255) NOT NULL,
|
||
|
`setting_value` VARCHAR(255),
|
||
|
PRIMARY KEY (`setting_key`)
|
||
|
);
|
||
|
|
||
|
CREATE TABLE IF NOT EXISTS `users` (
|
||
|
`user_id` INT NOT NULL AUTO_INCREMENT,
|
||
|
`display_name` VARCHAR(255),
|
||
|
`email` VARCHAR(255) NOT NULL UNIQUE,
|
||
|
`password` VARCHAR(255) NOT NULL,
|
||
|
`salt` VARCHAR(255) NOT NULL,
|
||
|
`is_admin` BOOLEAN,
|
||
|
PRIMARY KEY (`user_id`)
|
||
|
);
|
||
|
|
||
|
CREATE TABLE IF NOT EXISTS `user_sessions` (
|
||
|
`session_id` VARCHAR(255) NOT NULL,
|
||
|
`salt` VARCHAR(255) NOT NULL,
|
||
|
`user_id` INT NOT NULL,
|
||
|
`expiry` DATETIME NOT NULL,
|
||
|
PRIMARY KEY (`session_id`),
|
||
|
FOREIGN KEY (`user_id`) REFERENCES `users`(`user_id`)
|
||
|
);
|
||
|
|
||
|
CREATE TABLE IF NOT EXISTS `locations` (
|
||
|
`location_id` INT NOT NULL AUTO_INCREMENT,
|
||
|
`name` VARCHAR(255) NOT NULL,
|
||
|
`logo` BLOB,
|
||
|
PRIMARY KEY (`location_id`)
|
||
|
);
|
||
|
|
||
|
CREATE TABLE IF NOT EXISTS `permissions` (
|
||
|
`user_id` INT NOT NULL,
|
||
|
`location_id` INT NOT NULL,
|
||
|
`is_owner` BOOLEAN,
|
||
|
PRIMARY KEY (`user_id`, `location_id`),
|
||
|
FOREIGN KEY (`user_id`) REFERENCES `users`(`user_id`),
|
||
|
FOREIGN KEY (`location_id`) REFERENCES `locations`(`location_id`)
|
||
|
);
|
||
|
|
||
|
CREATE TABLE IF NOT EXISTS `visits` (
|
||
|
`visit_id` VARCHAR(255) NOT NULL,
|
||
|
`location_id` INT NOT NULL,
|
||
|
`arrival` DATETIME NOT NULL,
|
||
|
`departure` DATETIME NOT NULL,
|
||
|
PRIMARY KEY (`visit_id`),
|
||
|
FOREIGN KEY (`location_id`) REFERENCES `locations`(`location_id`)
|
||
|
);
|
||
|
|
||
|
CREATE TABLE IF NOT EXISTS `visitors` (
|
||
|
`visitor_id` INT NOT NULL AUTO_INCREMENT,
|
||
|
`visit_id` VARCHAR(255) NOT NULL,
|
||
|
`first_name` VARCHAR(255) NOT NULL,
|
||
|
`last_name` VARCHAR(255) NOT NULL,
|
||
|
`address1` VARCHAR(255),
|
||
|
`address2` VARCHAR(255),
|
||
|
`zip` VARCHAR(255),
|
||
|
`city` VARCHAR(255),
|
||
|
`state` VARCHAR(255),
|
||
|
`country` VARCHAR(255),
|
||
|
`phone` VARCHAR(255),
|
||
|
`email` VARCHAR(255),
|
||
|
PRIMARY KEY (`visitor_id`),
|
||
|
FOREIGN KEY (`visit_id`) REFERENCES `visits`(`visit_id`)
|
||
|
);
|
||
|
|
||
|
CREATE TABLE IF NOT EXISTS `visit_sessions` (
|
||
|
`session_id` VARCHAR(255) NOT NULL,
|
||
|
`salt` VARCHAR(255) NOT NULL,
|
||
|
`visit_id` VARCHAR(255) NOT NULL,
|
||
|
`expiry` DATETIME,
|
||
|
PRIMARY KEY (`session_id`),
|
||
|
FOREIGN KEY (`visit_id`) REFERENCES `visits`(`visit_id`)
|
||
|
);
|