FSCash/init.sql

57 lines
1.5 KiB
SQL

-- Datenbank erstellen
CREATE DATABASE IF NOT EXISTS finanzapp;
USE finanzapp;
-- Benutzer "finanzapp" anlegen (falls nicht vorhanden)
CREATE USER IF NOT EXISTS 'finanzapp'@'%' IDENTIFIED BY 'finanzapp';
-- Alle Rechte auf die Datenbank finanzapp für den Benutzer finanzapp
GRANT ALL PRIVILEGES ON finanzapp.* TO 'finanzapp'@'%';
FLUSH PRIVILEGES;
-- Tabelle für Benutzer
CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL
);
-- Tabelle für Einträge
CREATE TABLE IF NOT EXISTS entries (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
person VARCHAR(50),
date DATE NOT NULL,
category json,
subject VARCHAR(255) NOT NULL,
amount DECIMAL(10,2) NOT NULL,
payment_method VARCHAR(50),
FOREIGN KEY (user_id) REFERENCES users(id)
);
-- Testbenutzer einfügen (Passwort: "test123")
INSERT INTO users (username, password) VALUES ('testuser', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi');
CREATE TABLE IF NOT EXISTS categories (
category_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL
);
INSERT INTO categories (name) VALUES
('Einkaufen'),
('Essen gehen'),
('Freizeit'),
('PuFra'),
('Urlaub gemeinsam'),
('Urlaub Pössi'),
('Barausgaben');
CREATE TABLE IF NOT EXISTS payment_methods (
payment_method_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL
);
INSERT INTO payment_methods (name) VALUES
('Bar'),
('Karte'),
('Paypal');