Initial habit tracker project
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
CREATE DATABASE IF NOT EXISTS pbbfa24aal_habittracker
|
||||
CHARACTER SET utf8mb4
|
||||
COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
USE pbbfa24aal_habittracker;
|
||||
|
||||
CREATE TABLE users (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
name VARCHAR(100) NOT NULL,
|
||||
email VARCHAR(190) NOT NULL UNIQUE,
|
||||
password_hash VARCHAR(255) NOT NULL,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
CREATE TABLE categories (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
name VARCHAR(80) NOT NULL,
|
||||
color VARCHAR(20) NOT NULL DEFAULT '#176b5b'
|
||||
);
|
||||
|
||||
CREATE TABLE habits (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
user_id INT NOT NULL,
|
||||
category_id INT NULL,
|
||||
title VARCHAR(120) NOT NULL,
|
||||
description TEXT NULL,
|
||||
target_per_week TINYINT UNSIGNED NOT NULL DEFAULT 3,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (category_id) REFERENCES categories(id) ON DELETE SET NULL
|
||||
);
|
||||
|
||||
CREATE TABLE habit_logs (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
habit_id INT NOT NULL,
|
||||
completed_on DATE NOT NULL,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
UNIQUE KEY unique_habit_day (habit_id, completed_on),
|
||||
FOREIGN KEY (habit_id) REFERENCES habits(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE reminders (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
habit_id INT NOT NULL,
|
||||
reminder_time TIME NOT NULL,
|
||||
weekday TINYINT UNSIGNED NULL,
|
||||
is_active TINYINT(1) NOT NULL DEFAULT 1,
|
||||
FOREIGN KEY (habit_id) REFERENCES habits(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
INSERT INTO categories (name, color) VALUES
|
||||
('Gesundheit', '#176b5b'),
|
||||
('Lernen', '#365c9a'),
|
||||
('Sport', '#b95c20'),
|
||||
('Alltag', '#6b4ba3');
|
||||
Reference in New Issue
Block a user