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​