65 lines
No EOL
1.8 KiB
SQL
65 lines
No EOL
1.8 KiB
SQL
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 INT NOT NULL AUTO_INCREMENT,
|
|
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 INT 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),
|
|
country VARCHAR(255),
|
|
phone VARCHAR(255),
|
|
email VARCHAR(255),
|
|
PRIMARY KEY (visitor_id),
|
|
FOREIGN KEY (visit_id) REFERENCES visits(visit_id)
|
|
); |