Cleanup: Consolidated database schema into packliste.sql and updated README

This commit is contained in:
Gemini Agent
2025-12-05 18:10:45 +00:00
parent 494465f2ba
commit 53395120e2
3 changed files with 518 additions and 57 deletions

View File

@@ -47,7 +47,7 @@ Eine moderne, webbasierte Anwendung zur Verwaltung von Packlisten für Wanderung
2. **Datenbank einrichten:**
* Erstelle eine leere Datenbank (z.B. `packliste`).
* Importiere `packliste.sql` und anschließend `mysql_update.sql` (für die neuesten Features).
* Importiere die Datei `packliste.sql` in diese Datenbank (z.B. via phpMyAdmin oder Konsole).
3. **Konfiguration:**
* Erstelle eine Datei `config.ini` **außerhalb** des öffentlichen Web-Verzeichnisses (z.B. ein Verzeichnis höher als `index.php`).
@@ -60,11 +60,6 @@ Eine moderne, webbasierte Anwendung zur Verwaltung von Packlisten für Wanderung
```
* *Hinweis:* Die Anwendung sucht standardmäßig unter `../config.ini`.
### Upgrade (Vorhandene Installation)
1. Führe das SQL-Skript `mysql_update.sql` auf deiner Datenbank aus.
2. Überschreibe die PHP-Dateien mit der neuesten Version.
### Docker Deployment
Die Anwendung ist vollständig containerisiert ("Dockerized"). Du kannst sie direkt als Container starten und mit einer beliebigen externen MySQL/MariaDB-Datenbank verbinden.

View File

@@ -1,51 +0,0 @@
-- Datenbank-Update: Rucksack-Feature
-- Führe dieses Skript aus, um eine bestehende Installation zu aktualisieren.
-- 1. Neue Tabelle für Rucksäcke
CREATE TABLE IF NOT EXISTS backpacks (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
household_id INT DEFAULT NULL,
name VARCHAR(255) NOT NULL,
manufacturer VARCHAR(255),
model VARCHAR(255),
weight_grams INT DEFAULT 0,
volume_liters INT DEFAULT 0,
image_url VARCHAR(255),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
UNIQUE KEY unique_backpack_name (user_id, household_id, name)
);
-- 2. Neue Tabelle für Rucksack-Fächer
CREATE TABLE IF NOT EXISTS backpack_compartments (
id INT AUTO_INCREMENT PRIMARY KEY,
backpack_id INT NOT NULL,
name VARCHAR(255) NOT NULL,
sort_order INT DEFAULT 0,
FOREIGN KEY (backpack_id) REFERENCES backpacks(id) ON DELETE CASCADE
);
-- 3. Neue Tabelle für die Zuweisung von Rucksäcken zu Trägern pro Liste
CREATE TABLE IF NOT EXISTS packing_list_carriers (
id INT AUTO_INCREMENT PRIMARY KEY,
packing_list_id INT NOT NULL,
user_id INT NOT NULL,
backpack_id INT DEFAULT NULL,
FOREIGN KEY (packing_list_id) REFERENCES packing_lists(id) ON DELETE CASCADE,
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
FOREIGN KEY (backpack_id) REFERENCES backpacks(id) ON DELETE SET NULL
);
-- 4. Anpassung der packing_list_items Tabelle
-- Hinzufügen der Spalten für Rucksack-Referenzen und freie Namen (für Container)
ALTER TABLE packing_list_items ADD COLUMN IF NOT EXISTS backpack_id INT DEFAULT NULL;
ALTER TABLE packing_list_items ADD COLUMN IF NOT EXISTS backpack_compartment_id INT DEFAULT NULL;
ALTER TABLE packing_list_items ADD COLUMN IF NOT EXISTS name VARCHAR(255) DEFAULT NULL;
-- Foreign Keys setzen
ALTER TABLE packing_list_items ADD CONSTRAINT fk_pli_backpack FOREIGN KEY (backpack_id) REFERENCES backpacks(id) ON DELETE SET NULL;
ALTER TABLE packing_list_items ADD CONSTRAINT fk_pli_compartment FOREIGN KEY (backpack_compartment_id) REFERENCES backpack_compartments(id) ON DELETE SET NULL;
-- WICHTIG: article_id muss NULL sein dürfen (für reine Container-Items)
ALTER TABLE packing_list_items MODIFY COLUMN article_id INT NULL;

517
packliste.sql Normal file

File diff suppressed because one or more lines are too long