FSCash/init.sql

73 lines
1.9 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 int(11) NOT NULL,
note 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');
CREATE TABLE aktien (
id INT NOT NULL AUTO_INCREMENT,
user_id INT NOT NULL,
WKNISIN VARCHAR(20) NOT NULL,
Symbol VARCHAR(20) NULL,
Aktie VARCHAR(100) NOT NULL,
kaufdatum DATE NOT NULL,
kaufpreis DECIMAL(10, 2) NOT NULL,
anzahl DECIMAL(10, 4) NOT NULL,
kursdatum DATE NULL,
kurs DECIMAL(10, 2) NULL,
PRIMARY KEY (id)
);