Datenbankschema
Übersicht aller Datenbanktabellen in FeedbackPulse SaaS.
Tabellenreferenz
Plattform-Tabellen (nicht mandantenspezifisch)
| Tabelle | Beschreibung | Wichtige Spalten |
|---|---|---|
platform_settings | Globale Schlüssel-Wert-Konfiguration (verschlüsselt für Geheimnisse) | key, value |
plans | Abonnementpläne mit Preisen und Feature-Flags | name, monthly_price, annual_price, max_*, feature_* |
landing_pages | Landingpage-Builder-Daten mit zwischengespeichertem HTML | sections (JSON), cached_html, is_published |
payment_events | Stripe/PayPal Webhook-Ereignisprotokoll | gateway, event_id, event_type, payload (JSON) |
audit_logs | Aktions-Audit-Trail | user_id, action, description, old_values, new_values |
cron_logs | Ausführungsprotokoll geplanter Aufgaben | job_name, status, output, duration_seconds |
Mandanten-Tabellen
| Tabelle | Beschreibung | Wichtige Spalten |
|---|---|---|
tenants | Mandantenkonten | name, slug, subdomain, plan_id, status, settings (JSON) |
tenant_domains | Benutzerdefinierte Domain-Zuordnungen | tenant_id, domain, status, verified_at |
users | Alle Benutzerkonten (alle Rollen) | name, email, role, tenant_id, two_factor_secret |
products | Feedback-Produkte | tenant_id, name, slug, type, category, is_active |
feedback_campaigns | Feedback-Formular-Konfigurationen | tenant_id, product_id, name, slug, survey_schema (JSON), status |
feedback_submissions | Einzelne Feedback-Einträge | tenant_id, campaign_id, product_id, star_rating, nps_score, text_feedback, sentiment_*, status |
feedback_tags | Tag-Definitionen | tenant_id, name |
feedback_submission_tag | Many-to-Many-Pivot | submission_id, tag_id |
team_members | Mandanten-Team-Einträge | tenant_id, user_id, role |
team_invitations | Ausstehende Einladungen | tenant_id, email, role, token, expires_at |
api_keys | Mandanten-API-Schlüssel (gehasht) | tenant_id, name, key, scopes, is_active |
roadmap_items | Öffentliche Roadmap-Einträge | tenant_id, product_id, title, status, vote_count |
roadmap_votes | Anonyme Abstimmungen für Einträge | roadmap_item_id, email |
feature_requests | Community-Feature-Vorschläge | tenant_id, roadmap_item_id, email, description, status |
changelog_entries | Produktversionshinweise | tenant_id, product_id, title, body, version, published_at |
notifications | In-App-Benachrichtigungen | tenant_id, user_id, type, title, message, data (JSON) |
webhook_logs | Ausgehende Webhook-Lieferprotokolle | tenant_id, url, event, payload (JSON), response_code |
data_deletion_requests | DSGVO-Löschverfolgung | tenant_id, requester_email, status, completed_at |
referral_codes | Empfehlungscodes | tenant_id, code, reward_type, uses, max_uses |
referral_conversions | Conversion-Tracking | referral_code_id, converted_tenant_id, reward_amount |
scheduled_report_logs | Berichtslieferungsprotokoll | tenant_id, report_type, status, sent_at |
Laravel-Systemtabellen
| Tabelle | Beschreibung |
|---|---|
migrations | Migrationsverfolgung |
password_reset_tokens | Passwort-Reset-Tokens (mandantenabhängig) |
sessions | Benutzersitzungen |
cache | Anwendungs-Cache |
jobs | Queue-Jobs |
failed_jobs | Fehlgeschlagene Queue-Jobs |
Wichtige Beziehungen
plans <---- tenants <---- users
|
|---- products <---- feedback_campaigns <---- feedback_submissions
| |
| +---- feedback_tags (M2M)
|
|---- roadmap_items <---- roadmap_votes
| <---- feature_requests
|
|---- changelog_entries
|---- team_members ---- users
|---- team_invitations
|---- api_keys
|---- notifications
+---- webhook_logs
Datenisolation
Jede mandantenspezifische Tabelle hat:
tenant_idFremdschlüssel mitON DELETE CASCADE- Zusammengesetzten Index auf
(tenant_id, created_at) - Globalen
TenantScopefür automatische Filterung
Wenn ein Mandant gelöscht wird, werden alle seine Daten automatisch kaskadierend gelöscht.