You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
1.9 KiB
74 lines
1.9 KiB
/*
|
|
* @author Robert Strutts
|
|
* @copyright (c) 2026, Robert Strutts
|
|
* @license MIT
|
|
*/
|
|
/**
|
|
* Author: Robert Strutts
|
|
* Created: May 27, 2026
|
|
*/
|
|
|
|
CREATE TABLE emails (
|
|
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
|
email CHAR(254) NOT NULL UNIQUE,
|
|
uuid CHAR(26) NOT NULL UNIQUE,
|
|
first_name VARCHAR(33) NOT NULL,
|
|
last_initial CHAR(1) NOT NULL,
|
|
last_name VARCHAR(63) NULL,
|
|
is_adult TINYINT UNSIGNED DEFAULT 0,
|
|
tos TINYINT UNSIGNED DEFAULT 0,
|
|
be_anon TINYINT UNSIGNED DEFAULT 0,
|
|
is_active TINYINT UNSIGNED DEFAULT 0,
|
|
ip VARBINARY(16) NULL,
|
|
is_banned TINYINT UNSIGNED DEFAULT 0,
|
|
is_subscribed TINYINT UNSIGNED DEFAULT 0,
|
|
send_newsletter TINYINT UNSIGNED DEFAULT 0,
|
|
sent_email TINYINT UNSIGNED DEFAULT 0
|
|
);
|
|
|
|
CREATE TABLE users (
|
|
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
|
email_id INT UNSIGNED NOT NULL,
|
|
pwd TEXT NOT NULL,
|
|
access_level TINYINT UNSIGNED DEFAULT 1
|
|
);
|
|
|
|
CREATE TABLE goals (
|
|
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
|
uuid CHAR(26) NOT NULL UNIQUE,
|
|
email_id INT UNSIGNED NOT NULL,
|
|
title VARCHAR(255) NOT NULL,
|
|
description TEXT,
|
|
approved TINYINT UNSIGNED DEFAULT 0,
|
|
youtube TINYINT UNSIGNED DEFAULT 0
|
|
);
|
|
|
|
CREATE TABLE tags (
|
|
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
|
name VARCHAR(100) UNIQUE
|
|
);
|
|
|
|
CREATE TABLE goal_tags (
|
|
goal_id BIGINT UNSIGNED,
|
|
tag_id INT UNSIGNED,
|
|
PRIMARY KEY(goal_id, tag_id)
|
|
);
|
|
|
|
CREATE TABLE advice (
|
|
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
|
goal_id BIGINT UNSIGNED NOT NULL,
|
|
email_id INT UNSIGNED NOT NULL,
|
|
content TEXT NOT NULL,
|
|
votes INT UNSIGNED DEFAULT 0,
|
|
approved TINYINT UNSIGNED DEFAULT 0,
|
|
youtube TINYINT UNSIGNED DEFAULT 0
|
|
);
|
|
|
|
CREATE TABLE advice_comments (
|
|
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
|
advice_id BIGINT UNSIGNED,
|
|
email_id INT UNSIGNED NOT NULL,
|
|
content TEXT,
|
|
approved TINYINT UNSIGNED DEFAULT 0,
|
|
youtube TINYINT UNSIGNED DEFAULT 0
|
|
);
|
|
|