Saltar al contenido principal

Esquema de Base de Datos

Descripción general de todas las tablas de la base de datos en FeedbackPulse SaaS.


Referencia de Tablas

Tablas de la Plataforma (Sin Ámbito de Inquilino)

TablaDescripciónColumnas Clave
platform_settingsConfiguración global clave-valor (cifrada para secretos)key, value
plansPlanes de suscripción con precios e indicadores de funcionesname, monthly_price, annual_price, max_*, feature_*
landing_pagesDatos del constructor de página de inicio con HTML en cachésections (JSON), cached_html, is_published
payment_eventsRegistro de eventos webhook de Stripe/PayPalgateway, event_id, event_type, payload (JSON)
audit_logsHistorial de auditoría de accionesuser_id, action, description, old_values, new_values
cron_logsRegistro de ejecución de tareas programadasjob_name, status, output, duration_seconds

Tablas de Inquilinos

TablaDescripciónColumnas Clave
tenantsCuentas multi-inquilinoname, slug, subdomain, plan_id, status, settings (JSON)
tenant_domainsMapeos de dominios personalizadostenant_id, domain, status, verified_at
usersTodas las cuentas de usuario (todos los roles)name, email, role, tenant_id, two_factor_secret
productsProductos de feedbacktenant_id, name, slug, type, category, is_active
feedback_campaignsConfiguraciones de formularios de feedbacktenant_id, product_id, name, slug, survey_schema (JSON), status
feedback_submissionsEntradas de feedback individualestenant_id, campaign_id, product_id, star_rating, nps_score, text_feedback, sentiment_*, status
feedback_tagsDefiniciones de etiquetastenant_id, name
feedback_submission_tagTabla pivote muchos-a-muchossubmission_id, tag_id
team_membersRegistros del equipo del inquilinotenant_id, user_id, role
team_invitationsInvitaciones pendientestenant_id, email, role, token, expires_at
api_keysClaves API del inquilino (con hash)tenant_id, name, key, scopes, is_active
roadmap_itemsElementos públicos de la hoja de rutatenant_id, product_id, title, status, vote_count
roadmap_votesVotos anónimos en elementosroadmap_item_id, email
feature_requestsSugerencias de funciones de la comunidadtenant_id, roadmap_item_id, email, description, status
changelog_entriesNotas de lanzamiento del productotenant_id, product_id, title, body, version, published_at
notificationsNotificaciones en la aplicacióntenant_id, user_id, type, title, message, data (JSON)
webhook_logsRegistros de entrega de webhooks de salidatenant_id, url, event, payload (JSON), response_code
data_deletion_requestsSeguimiento de eliminaciones GDPRtenant_id, requester_email, status, completed_at
referral_codesCódigos de referidotenant_id, code, reward_type, uses, max_uses
referral_conversionsSeguimiento de conversionesreferral_code_id, converted_tenant_id, reward_amount
scheduled_report_logsRegistro de entrega de informestenant_id, report_type, status, sent_at

Tablas del Sistema Laravel

TablaDescripción
migrationsSeguimiento de migraciones
password_reset_tokensTokens de restablecimiento de contraseña (con soporte de inquilino)
sessionsSesiones de usuario
cacheCaché de la aplicación
jobsTrabajos en cola
failed_jobsTrabajos en cola fallidos

Relaciones Clave

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

Aislamiento de Datos

Cada tabla con ámbito de inquilino tiene:

  • Clave foránea tenant_id con ON DELETE CASCADE
  • Índice compuesto en (tenant_id, created_at)
  • Ámbito global TenantScope para filtrado automático

Cuando se elimina un inquilino, todos sus datos se eliminan en cascada automáticamente.


Próximos Pasos