Shop Projekt - Dokumentation

Shop LDM

Teil 00: Funktionen & Prozeduren

Dieses Modul enthält wiederverwendbare Hilfsfunktionen und Prozeduren, die über das gesamte System hinweg genutzt werden. Es dient als "Werkzeugkasten" für häufige Datenbankoperationen und erhöht die Wartbarkeit des Codes.

🗺️ Stufe 0 | 📚 Aktuell | 📟 2026 06 15 | 📍 Datenbank

DropForeignKeyIfExists Procedure

Input:
    - p_table_name: VARCHAR(64)        -- Name der Tabelle
    - p_fk_name: VARCHAR(64)           -- Name des Fremdschlüssel-Constraints

Process:
   1. Check if table exists            -- Prüft ob die Tabelle existiert
   2. Check if foreign key exists      -- Prüft ob der Fremdschlüssel existiert
   3. If both exist: DROP FOREIGN KEY  -- Löscht den Fremdschlüssel nur wenn beides zutrifft

Output:
    - Status message                   -- Gibt Statusmeldungen zurück

generateSwissPhone Function

Zweck: Generiert zufällige, valide Schweizer Mobiltelefonnummern für Testdaten.
Input:

Process:
   1. Random prefix: 076|077|078|079   -- Wählt zufällige Schweizer Mobilfunkvorwahl
   2. Random 3-digit block             -- Generiert drei zufällige Blöcke für die restlichen Ziffern
   3. Random 2-digit block
   4. Random 2-digit block

Output VARCHAR(20):
    - Format: XXX XXX XX XX            -- Formatiert im Schweizer Standardformat

p_check_has_one Procedure

Zweck: Universelle Prüfung auf Existenz eines Datensatzes in einer beliebigen Tabelle.

Input:
    - p_table_name: VARCHAR(64)        -- Ziel-Tabelle
    - p_column_name: VARCHAR(64)       -- Ziel-Spalte
    - p_ID: INT                        -- Zu prüfende ID

Process:
   1. Security Check                   -- Validiert Tabellen- und Spaltennamen gegen Schema
   2. Dynamic Query Building           -- Erstellt dynamischen SELECT EXISTS String
   3. Execution                        -- Führt Suche aus und setzt Resultat

Output (OUT):
   - p_exists: BOOLEAN                 -- Rückgabe ob gefunden (1) oder nicht (0)