Zum Hauptinhalt springen

Datenbankschema

Übersicht aller Datenbanktabellen in FeedbackPulse SaaS.


Tabellenreferenz

Plattform-Tabellen (nicht mandantenspezifisch)

TabelleBeschreibungWichtige Spalten
platform_settingsGlobale Schlüssel-Wert-Konfiguration (verschlüsselt für Geheimnisse)key, value
plansAbonnementpläne mit Preisen und Feature-Flagsname, monthly_price, annual_price, max_*, feature_*
landing_pagesLandingpage-Builder-Daten mit zwischengespeichertem HTMLsections (JSON), cached_html, is_published
payment_eventsStripe/PayPal Webhook-Ereignisprotokollgateway, event_id, event_type, payload (JSON)
audit_logsAktions-Audit-Trailuser_id, action, description, old_values, new_values
cron_logsAusführungsprotokoll geplanter Aufgabenjob_name, status, output, duration_seconds

Mandanten-Tabellen

TabelleBeschreibungWichtige Spalten
tenantsMandantenkontenname, slug, subdomain, plan_id, status, settings (JSON)
tenant_domainsBenutzerdefinierte Domain-Zuordnungentenant_id, domain, status, verified_at
usersAlle Benutzerkonten (alle Rollen)name, email, role, tenant_id, two_factor_secret
productsFeedback-Produktetenant_id, name, slug, type, category, is_active
feedback_campaignsFeedback-Formular-Konfigurationentenant_id, product_id, name, slug, survey_schema (JSON), status
feedback_submissionsEinzelne Feedback-Einträgetenant_id, campaign_id, product_id, star_rating, nps_score, text_feedback, sentiment_*, status
feedback_tagsTag-Definitionentenant_id, name
feedback_submission_tagMany-to-Many-Pivotsubmission_id, tag_id
team_membersMandanten-Team-Einträgetenant_id, user_id, role
team_invitationsAusstehende Einladungentenant_id, email, role, token, expires_at
api_keysMandanten-API-Schlüssel (gehasht)tenant_id, name, key, scopes, is_active
roadmap_itemsÖffentliche Roadmap-Einträgetenant_id, product_id, title, status, vote_count
roadmap_votesAnonyme Abstimmungen für Einträgeroadmap_item_id, email
feature_requestsCommunity-Feature-Vorschlägetenant_id, roadmap_item_id, email, description, status
changelog_entriesProduktversionshinweisetenant_id, product_id, title, body, version, published_at
notificationsIn-App-Benachrichtigungentenant_id, user_id, type, title, message, data (JSON)
webhook_logsAusgehende Webhook-Lieferprotokolletenant_id, url, event, payload (JSON), response_code
data_deletion_requestsDSGVO-Löschverfolgungtenant_id, requester_email, status, completed_at
referral_codesEmpfehlungscodestenant_id, code, reward_type, uses, max_uses
referral_conversionsConversion-Trackingreferral_code_id, converted_tenant_id, reward_amount
scheduled_report_logsBerichtslieferungsprotokolltenant_id, report_type, status, sent_at

Laravel-Systemtabellen

TabelleBeschreibung
migrationsMigrationsverfolgung
password_reset_tokensPasswort-Reset-Tokens (mandantenabhängig)
sessionsBenutzersitzungen
cacheAnwendungs-Cache
jobsQueue-Jobs
failed_jobsFehlgeschlagene 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_id Fremdschlüssel mit ON DELETE CASCADE
  • Zusammengesetzten Index auf (tenant_id, created_at)
  • Globalen TenantScope für automatische Filterung

Wenn ein Mandant gelöscht wird, werden alle seine Daten automatisch kaskadierend gelöscht.


Nächste Schritte