StickingToGoals.com
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.
 
 
 
mygoals/protected/sql/initGoals.sql

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
);