28 nov 2025·8 min de lectura

Convenciones de nombres de base de datos para paneles de administración que siguen siendo legibles

Aplica convenciones de nombres en la base de datos para mantener las pantallas generadas del admin claras: reglas para tablas y campos, enums, relaciones y una checklist rápida.

Convenciones de nombres de base de datos para paneles de administración que siguen siendo legibles

Por qué los nombres deciden si un panel de administración parece claro o desordenado

La mayoría de los paneles de administración se construyen a partir de tu modelo de datos. Los nombres de tablas y campos acaban como elementos de menú, títulos de página, encabezados de columna, etiquetas de filtro e incluso las palabras que la gente escribe en la búsqueda.

Cuando los nombres son claros, un administrador puede recorrer una lista y entenderla en segundos. Cuando los nombres no lo son, se detiene, adivina, abre un registro, vuelve atrás y prueba de nuevo. Esa vacilación se acumula. Se convierte en preguntas de soporte tipo “¿Cómo encuentro al cliente correcto?” y en documentos de formación que nadie quiere leer.

Los desarrolladores suelen nombrar cosas pensando en construir y depurar. Los operadores nombran cosas para hacer su trabajo. Un desarrollador puede estar bien con acct, addr1 o stat porque recuerda lo que significan. Un operador necesita “Account”, “Address line 1” y “Status” sin tener que descifrar.

En una pantalla administrativa, “legible” suele significar:

  • Puedes escanear una tabla y entender cada columna sin abrir una fila.
  • Puedes buscar y filtrar usando las mismas palabras que usas en el trabajo diario.
  • Puedes ordenar y comparar valores sin sorpresas (por ejemplo, fechas que son realmente fechas y estados que son consistentes).

Si usas una plataforma que genera pantallas a partir del modelo (por ejemplo, AppMaster’s Data Designer y vistas de estilo admin), el nombre pasa a formar parte del diseño de la UI. Buenos nombres te dan pantallas predeterminadas limpias desde el primer día, antes de que empieces a pulir etiquetas y diseños.

Una línea base simple de nombres que todo el equipo puede seguir

Si quieres que las pantallas generadas se vean limpias desde el primer día, acuerda una línea base antes de que alguien añada la primera tabla. La mayoría de los problemas de nombres no son técnicos. Son problemas de consistencia.

Elige un estilo de identificadores y no lo mezcles. Para bases de datos, snake_case suele ser lo más fácil de leer y buscar. Si tu stack espera camelCase, úsalo en todas partes (tablas, columnas, claves foráneas, enums). Cambiar de estilo a mitad del proyecto es lo que hace que etiquetas y filtros parezcan aleatorios.

Una línea base que funciona para la mayoría de los equipos:

  • Usa palabras completas: customer_id, no cust_id; description, no desc.
  • Usa sustantivos claros para cosas y verbos claros para acciones: invoice, payment, refund_requested.
  • Usa nombres de timestamp consistentes: created_at, updated_at, deleted_at.
  • Evita palabras vagas como data, info, value o type a menos que añadas contexto (por ejemplo, shipping_address, payout_method).
  • Mantén singular vs plural consistente (muchos equipos usan tablas plurales como customers y columnas singulares como customer_id).

Escribe un pequeño glosario y mantenlo visible. Decide desde temprano si te refieres a customer, client, account o user, y luego usa un solo término. Haz lo mismo para “order” vs “purchase” o “ticket” vs “case”.

Una comprobación rápida: si dos personas pueden mirar una columna como account_status y ponerse de acuerdo sobre lo que significa sin preguntar, la línea base está funcionando. Si no pueden, renómbrala antes de construir pantallas y filtros encima.

Reglas de nombres de tablas que se mapean bien a menús y listas

La mayoría de los paneles de administración convierten los nombres de tablas en elementos de menú, títulos de lista y breadcrumbs. Tu esquema no es solo para ingenieros. Es el primer borrador de tu UI.

Elige un estilo para las tablas de entidad y mantenlo: singular (user, invoice, ticket) o plural (users, invoices, tickets). El singular suele leerse mejor en títulos de formularios (“Edit Ticket”), mientras que el plural puede verse mejor en menús (“Tickets”). Cualquiera está bien. Mezclar ambos hace que la navegación se sienta inconsistente.

Nombra las tablas por lo que son, no por lo que hacen. Una tabla debe representar una cosa a la que puedes apuntar. payment es una cosa; processing es una acción. Si luego añades refunds, retries y settlements, un nombre processing se vuelve engañoso.

Reglas que mantienen menús y listas limpios:

  • Usa sustantivos concretos (customer, subscription, invoice, ticket_message).
  • Evita tablas “cajón” para datos permanentes (settings, misc, temp, data). Sepáralas en entidades reales (notification_setting, tax_rate, feature_flag).
  • Prefiere nombres compuestos cortos y legibles con guiones bajos (purchase_order, support_ticket) en lugar de abreviaturas.
  • Añade un prefijo de módulo solo cuando prevenga colisiones (por ejemplo, billing_invoice vs invoice). Si usas prefijo, aplícalo consistentemente en todo el módulo.

Si usas AppMaster para generar pantallas directamente desde tu esquema, nombres estables basados en sustantivos suelen producir un menú predeterminado y una vista de lista limpia con menos limpieza posterior.

Tablas de unión e identificadores: mantener legibles las relaciones muchos-a-muchos

Las relaciones many-to-many son donde los paneles administrativos a menudo empiezan a parecer desordenados. Si la tabla de unión y sus claves están bien nombradas, las pantallas generadas permanecen legibles sin limpieza manual.

Empieza con una regla aburrida y no la rompas: cada tabla tiene una clave primaria llamada id. No mezcles user_id como clave primaria en una tabla y id en otra. Los identificadores uniformes hacen las relaciones predecibles y ayudan a que los formularios generados y los campos de referencia sean consistentes.

Para tablas de unión puras, nómbralas por ambas entidades usando un patrón y un orden únicos. Opciones comunes son alfabético (product_tag) o “cosa principal primero” (user_role). Elige un orden y manténlo en todas partes.

Evita nombres vagos como links o mappings a menos que la tabla realmente contenga enlaces genéricos entre objetos. En la mayoría de los paneles administrativos, la especificidad vence a la creatividad.

Cuando una tabla de unión se convierte en una entidad real

Si la relación tiene campos adicionales, trátala como su propio modelo y nómbrala con un sustantivo que la gente entienda: membership, assignment, subscription. Por ejemplo, si el rol de un usuario tiene starts_at, ends_at y granted_by, user_role está bien, pero membership puede leerse mejor en la UI.

Un conjunto de reglas simple que mantiene las pantallas profesionales:

  • Usa id como clave primaria en cada tabla.
  • Nombra tablas de unión con ambas entidades en un orden consistente (user_role).
  • Usa claves foráneas claras como user_id y role_id.
  • Añade una regla de unicidad que refleje la realidad (por ejemplo, un role_id por user_id).
  • Si permites historial, haz que la regla de unicidad se ajuste a los registros “activos” (por ejemplo, único donde ended_at es null).

Estas elecciones resisten a medida que crecen los datos y funcionan bien con AppMaster’s Data Designer, donde las pantallas pueden generarse directamente desde el modelo.

Patrones de nombres de campos que producen columnas y filtros claros

Prototipa una función rápido
Prueba tu línea base de nombres en un módulo pequeño antes de que la base de datos crezca.
Crear un prototipo

Los nombres de campo hacen más que ayudar a los desarrolladores. Deciden lo que los usuarios ven como encabezados de columna, etiquetas de filtro y campos de formulario.

Sufijos predecibles eliminan suposiciones:

  • Usa _id para claves foráneas: customer_id, assigned_agent_id.
  • Usa _at para timestamps: created_at, paid_at, closed_at.
  • Usa _count para contadores: login_count, attachment_count.

Los booleanos deben leerse como oraciones simples. Prefiere is_ y has_ para que las casillas tengan sentido de un vistazo: is_active, has_paid, is_verified. Evita dobles negaciones como is_not_approved. Si necesitas un estado “no”, modela el positivo y invierte la lógica en el código.

Los campos de dinero son una fuente común de confusión en rejillas administrativas. Elige un enfoque y úsalo siempre: almacena unidades menores (por ejemplo, centavos) en un entero, o almacena decimales con precisión fija. Nombra el campo para que nadie tenga que adivinar. Por ejemplo, total_amount_cents + currency_code, o total_amount + currency_code. No mezcles price, amount y total a menos que representen conceptos diferentes.

Los campos de texto deben ser específicos sobre su propósito, no solo sobre el tipo. description es visible para el usuario. internal_comment es privado. notes es un cajón de sastre y debe usarse con cautela. Si tienes varias notas, nómbralas por audiencia: customer_note, agent_note.

Los campos de contacto deben ser literales porque a menudo se convierten en filtros rápidos: website_url, contact_email, billing_email. En las pantallas generadas por AppMaster, nombres así suelen transformarse en etiquetas predeterminadas limpias.

Relaciones y claves foráneas: nombres que explican el modelo de datos

Las buenas relaciones se leen como inglés simple. Cuando un panel de administración se genera desde la base de datos, los nombres de las claves foráneas suelen convertirse en títulos de columna, filtros y etiquetas de formulario.

Mantén una regla: la columna de clave foránea es el nombre de la tabla referenciada más _id. Si tienes customer.id, usa customer_id. Si tienes order.id, usa order_id. Esta consistencia hace obvio a qué apunta una columna.

Las autorrelaciones necesitan claridad extra porque son fáciles de malinterpretar después. Evita related_id genérico. Usa nombres que expliquen dirección y significado, como parent_id para árboles, manager_id para organigramas o merged_into_id para deduplicaciones.

Cuando una relación implica una tabla de unión, nómbrala para que se lea como una frase. Por ejemplo, ticket_assignee.user_id es más claro que ticket_user.user_id si el rol es “assignee” (y no “reporter” o “watcher”).

Comprobaciones prácticas que previenen la mayoría de los problemas:

  • No reutilices owner_id con significados distintos en diferentes tablas. Prefiere created_by_user_id, account_manager_user_id o billing_contact_id.
  • Si tienes múltiples relaciones a la misma tabla, incluye el rol: requested_by_user_id y approved_by_user_id.
  • Elige un marcador de borrado suave y úsalo: deleted_at es ampliamente entendido y funciona bien con filtros.

Si luego construyes pantallas en AppMaster, estos nombres aparecen por todas partes, así que un poco de cuidado aquí ahorra mucha limpieza de UI.

Enums y campos de estado que siguen siendo comprensibles con el tiempo

Obtén un admin por defecto limpio
Genera vistas de listas y formularios desde tu esquema, y ajusta etiquetas solo cuando haga falta.
Crear un admin

Si tu panel de administración se genera desde la base de datos, la forma más rápida de ensuciar las pantallas es dispersar significado en muchas banderas pequeñas. Prefiere un enum de estado claro para el ciclo de vida principal de un registro y mantiene flags adicionales solo para comportamientos verdaderamente separados.

Una regla útil: si los usuarios preguntarían “¿En qué punto del proceso está este ítem?”, eso es un estado. Si es “¿Debemos ocultarlo?” o “¿Está bloqueado?”, eso es un booleano separado.

Un estado vale más que cinco booleanos

En lugar de is_new, is_in_progress, is_done, is_cancelled, usa un solo ticket_status. Se lee mejor en columnas de lista, filtros y acciones en lote. También evita combinaciones imposibles como “done + in_progress”.

Mantén los valores del enum estables. El texto de la UI puede cambiar, pero los valores almacenados no deberían. Almacena pending, no waiting_for_review. Almacena rejected, no rejected_by_manager. Siempre puedes mostrar etiquetas más amigables después sin migrar datos.

Cuando necesites más detalle, añade un segundo campo en vez de sobrecargar el estado. Ejemplo: conserva payment_status como el ciclo de vida, y añade failure_reason (texto) cuando haga falta.

Nombra enums por dominio (para que los filtros tengan sentido)

Usa un prefijo de dominio para que las pantallas sigan siendo legibles cuando varios modelos tienen un “status”:

  • payment_status (checkout de pedido)
  • ticket_priority (urgencia de soporte)
  • user_role (nivel de acceso)
  • invoice_status (ciclo de facturación)
  • delivery_status (ciclo de envío)

Separa el ciclo de vida de flags operativos. Por ejemplo: status describe en qué punto del flujo está, mientras que is_archived significa que debe ocultarse de las listas cotidianas.

Escribe una frase de un renglón que explique cada valor de enum en las notas del equipo. El futuro tú olvidará la diferencia entre cancelled y voided. Si usas AppMaster, esas definiciones cortas también ayudan a mantener dropdowns y filtros coherentes entre web y móvil.

Casos límite: fechas, campos de auditoría y columnas “type”

Las guías de nombres suelen cubrir tablas y campos básicos, pero los paneles administrativos se enredan en los casos límite. Fechas, campos de auditoría y columnas “type” son donde nombres confusos se convierten en pantallas confusas.

Para fechas y timestamps, haz que el nombre cuente la historia: ¿es planificada, real o un recordatorio? Un patrón simple es un significado parecido a verbo más un sufijo claro. Por ejemplo, due_at (fecha límite planificada) y completed_at (finalización real) se muestran como columnas y filtros entendibles. Evita pares vagos como start_date y end_date cuando realmente quisiste decir scheduled_at y finished_at.

Las relaciones opcionales son otra trampa común. No inventes patrones nuevos por tabla. Mantén el nombre de la relación estable y deja que “opcional” se exprese permitiendo nulls, no renombrando el campo. manager_id debe seguir siendo manager_id incluso si es opcional.

Las direcciones pueden verse bien en código pero feas en rejillas. Las líneas numeradas están bien solo si el equipo acuerda su significado en todas partes. Mantenlas explícitas:

  • address_line1, address_line2, city, region, postal_code, country_code
  • Evita address1, address2 (más difícil de leer, más fácil de duplicar)

Los campos de auditoría deben ser aburridos a propósito:

  • created_at, updated_at
  • created_by_id, updated_by_id (solo si realmente necesitas seguimiento por usuario)

Ten cuidado con type. Casi siempre es demasiado amplio y envejece mal. En lugar de type, nombra el significado: payment_method, ticket_channel, customer_tier. En esquemas que generan pantallas (incluyendo AppMaster), esta elección puede marcar la diferencia entre un filtro claro y un dropdown confuso.

Ejemplo: nombrar un modelo de ticket de soporte que se vea bien en admin

Mantén el vocabulario consistente
Define un glosario una vez y reutilízalo en tablas, relaciones y enums.
Iniciar un proyecto

Un setup pequeño y realista de soporte: los clientes escriben, el personal responde y los tickets pueden etiquetarse. Las convenciones de nombres son lo que hacen que menús, pantallas de lista y filtros auto-generados se sientan obvios.

Empieza con nombres de tabla que se lean como sustantivos en una barra lateral:

  • customer
  • ticket
  • ticket_message
  • ticket_tag
  • ticket_tag_link

En la mayoría de los paneles, estos se convierten en etiquetas como “Tickets” y “Ticket Messages”, y la tabla de unión se mantiene fuera del camino.

Para la pantalla de lista de tickets, elige nombres de campo que se conviertan en encabezados de columna y filtros claros:

  • subject, status, priority
  • assigned_to_id (apunta a un usuario del staff)
  • last_message_at (permite ordenar por el más reciente)
  • created_at (estándar y predecible)

Los enums son donde la legibilidad suele romperse más tarde, así que mantiene el conjunto estable y simple:

  • ticket_status: new, open, pending_customer, resolved, closed
  • ticket_priority: low, normal, high, urgent

Una elección de nombres que evita confusiones constantes: no sobrecargues “customer”. En soporte, el solicitante no siempre es el cliente (un compañero puede enviar en nombre de alguien). Si guardas a la persona que envió el ticket, nómbrala requester_id, y guarda por separado customer_id para la cuenta sobre la que trata el ticket. Esa distinción mantiene formularios y filtros veraces desde el primer día.

Paso a paso: cómo nombrar un nuevo modelo antes de construir pantallas

Construye todo el stack sin código
Usa AppMaster para construir la solución completa: base de datos, backend y UI de administración desde un solo modelo.
Comenzar

La forma más fácil de mantener las pantallas legibles es nombrar las cosas mientras todavía piensas en lenguaje llano, no cuando ya estás construyendo.

Un proceso repetible para cada función

  1. Empieza con un mini glosario (5 a 10 términos). Escribe las palabras que un compañero no técnico usaría en una reunión y elige un término preferido para cada concepto (por ejemplo, “customer” vs “client”).

  2. Esboza las pantallas que esperas: lista, detalle, crear, editar. Para la vista de lista, decide qué 5 a 8 columnas deben ser inmediatamente claras como encabezados. Si un nombre de campo sonaría raro como encabezado, probablemente necesita trabajo.

  3. Redacta tablas y relaciones, luego nombra campos usando reglas de sufijo (*_id, *_at, is_*, *_count). Cuando después generes pantallas administrativas (incluido AppMaster), estos patrones tienden a producir etiquetas limpias y filtros previsibles.

Antes de seguir, asegúrate de no mezclar estilos (customer_id en una tabla, clientId en otra). La consistencia vence a la creatividad.

  1. Define enums temprano, no después de que exista la primera UI. Escribe una línea que explique cada valor, como si se la estuvieras explicando al personal de soporte. Prefiere valores que sobrevivan al cambio, como pending, active, archived (no new, newer, newest).

  2. Haz una “lectura de encabezados de columna”. Finge que eres el usuario admin que escanea una tabla.

  • ¿Tendrían sentido “Created At”, “Updated At”, “Status”, “Assigned To”, “Total Amount” sin capacitación?
  • ¿Algún campo suena a código interno (tmp_flag, x_type, data1)?
  • ¿Son obvios las unidades (amount_cents vs amount, duration_seconds vs duration)?

Si algo suena confuso en voz alta, renómbralo ahora. Renombrar más tarde es posible, pero a menudo se filtra en informes, filtros y hábitos.

Errores comunes de nomenclatura que hacen que los paneles admin sean difíciles de usar

Si el esquema es desordenado, las pantallas se verán desordenadas también, sin importar lo bonita que sea la UI. Las convenciones de nombres tienen menos que ver con “estilo” y más con usabilidad diaria.

La primera trampa es vocabulario mezclado. Si una tabla dice client y otra dice customer, tus menús, filtros y resultados de búsqueda parecerán describir cosas diferentes. Elige una palabra para cada concepto central y úsala en todas partes, incluidas las relaciones.

Otro problema común es abreviar en exceso. Abreviaturas como addr, misc o info ahorran caracteres pero cuestan claridad en tablas y exportaciones.

Un tercer error es hornear el flujo de la UI en la base de datos. Un campo como new_customer_wizard_step tiene sentido durante un lanzamiento y luego confunde cuando el flujo cambia o añades otra ruta de onboarding. Almacena el hecho de negocio (por ejemplo, onboarding_status) y deja que la UI decida cómo guiar a la gente.

También vigila la sobrecarga de booleanos. Cuando añades is_new, is_open e is_closed, acabarás con conflictos (dos verdaderos a la vez) y filtros poco claros. Prefiere un único campo de estado con un conjunto pequeño y bien nombrado de valores.

Señales de alarma que suelen llevar a pantallas feas:

  • Dos nombres diferentes para lo mismo (client_id en un lugar, customer_id en otro)
  • Columnas cajón de sastre (notes, misc, extra) que terminan guardando datos mixtos
  • Nombres dependientes del tiempo (summer_campaign_*) que sobreviven a la campaña
  • Múltiples booleanos que intentan describir un solo estado
  • Renombres hechos a la ligera, sin plan de migración

Renombrar no es solo buscar y reemplazar. Si cambias customer_phone a phone_number, planifica la migración, actualiza cualquier pantalla generada y mantén compatibilidad hacia atrás donde haga falta (especialmente si otros sistemas leen la API). En AppMaster, los nombres limpios se notan de inmediato porque listas, formularios y filtros heredan estas etiquetas del modelo.

Lista de comprobación rápida antes de lanzar el panel de administración

Renombrar sin deriva en la UI
Regenera tu app cuando cambien los nombres para que UI y API sigan alineadas.
Generar app

Antes de declarar el esquema “listo”, haz una pasada desde el punto de vista de quien vivirá en el panel todos los días.

  • Las tablas suenan a cosas reales. Un compañero debería poder decir qué representa una tabla (ticket, customer, invoice) sin adivinar.
  • Los campos clave siguen sufijos predecibles. Usa patrones reconocibles: *_id para referencias, *_at para timestamps, *_amount (o *_amount_cents) para dinero, e is_* para flags booleanos.
  • Los enums son estables y simples. Almacena valores como pending, paid, failed en lugar de frases de UI que cambiarán.
  • Un nuevo compañero puede inferir el significado. Si los campos aparecieran en una vista de lista generada sin texto de ayuda, ¿sería obvio el propósito?
  • Palabras ambiguas se eliminan o especifican. Reemplaza nombres cajón como data, value, type o info por cosas concretas como status, source, category, notes o external_reference.

Si usas AppMaster’s Data Designer para generar vistas tipo admin desde tu esquema, esta lista es práctica de inmediato: nombres claros se convierten en columnas y filtros claros, y pasas menos tiempo parcheando etiquetas después de que los usuarios empiecen a trabajar en el sistema.

Próximos pasos: hacer del nombramiento un hábito (y mantener las pantallas consistentes)

Un buen nombrado no es una limpieza puntual. Es una rutina pequeña que mantiene tu UI administrativa legible a medida que el esquema crece.

Empieza con un módulo existente y aplica las reglas solo a la próxima tabla nueva que añadas. Eso evita una reescritura aterradora y te da un lugar real para practicar. Si tu próxima función añade “returns” a un sistema de pedidos, nombra la tabla, las claves foráneas y los estados usando tus patrones desde el primer día, y luego reutiliza el enfoque para la siguiente función.

Mantén una guía de nombres de una página junto al lugar donde trabajas el esquema. Hazla corta: cómo nombras tablas, claves primarias, claves foráneas, timestamps y enums de estado. La meta son decisiones rápidas, no debates largos.

Si construyes con AppMaster, ayuda definir estos patrones en Data Designer antes de tocar las pantallas. Cuando renombres tablas o campos, regenera la app para que pantallas, APIs y lógica sigan alineadas en lugar de desviarse.

Un paso ligero de revisión antes de cada release suele ser suficiente:

  • ¿Los nombres de tablas y campos suenan bien como elementos de menú, encabezados de columna y filtros?
  • ¿Los estados y enums son claros sin explicación adicional?
  • ¿Las relaciones y claves foráneas se explican por sí mismas (no hay abreviaturas misteriosas)?
  • ¿Los modelos similares están nombrados consistentemente (mismas palabras, mismo orden)?

Con el tiempo, la ganancia real es la consistencia. Cuando cada nuevo modelo sigue las mismas reglas, tus paneles de administración empiezan a parecer diseñados aunque sean generados, porque las etiquetas y listas se leen como un producto coherente.

FAQ

¿Por qué los nombres de la base de datos afectan la apariencia y la sensación de un panel de administración?

Usa nombres que se lean como lo que el registro es, no como lo que hace. Una tabla llamada ticket o invoice se convertirá en un elemento de menú claro, mientras que algo como processing se vuelve confuso cuando cambia el flujo de trabajo.

¿Debemos usar snake_case o camelCase para tablas y columnas?

Elige un estilo y úsalo en todas partes. Para la mayoría de bases de datos, snake_case es más fácil de escanear y evita que las etiquetas y filtros generados parezcan aleatorios.

¿Cómo decidimos cuándo están bien las abreviaturas?

Usa palabras completas y obvias por defecto, porque se convierten en encabezados de columna y etiquetas de filtro. Abreviaturas como acct o addr1 suelen causar dudas a los operadores, aunque los desarrolladores las entiendan.

¿Los nombres de tablas deben ser singulares o plurales?

Elige un enfoque y mantenlo consistente: singular (ticket) o plural (tickets). El objetivo principal es que la navegación y los títulos de página no cambien de estilo entre módulos.

¿Cuál es una regla simple para claves primarias y foráneas?

Sigue una regla sencilla: la clave primaria de cada tabla es id, y las claves foráneas son algo_id. Esto hace las relaciones predecibles y ayuda a que formularios y campos de referencia generados se vean consistentes.

¿Cómo debemos nombrar tablas many-to-many para que la UI siga siendo legible?

Nombra tablas de unión puras por ambas entidades usando un orden consistente, por ejemplo user_role o product_tag. Si la relación tiene sus propios campos y significado, renómbrala como un sustantivo real como membership o assignment para que la interfaz se lea de forma natural.

¿Qué patrones de nombres de campos producen columnas y filtros limpios?

Usa sufijos previsibles que correspondan al tipo de dato e intención, como _at para timestamps y _count para contadores. Para booleanos, prefiere is_ y has_ para que las casillas de verificación se lean como oraciones sencillas en las pantallas generadas.

¿Es mejor usar un enum de estado o varios flags booleanos?

Prefiere un campo de estado claro para el ciclo de vida principal, como ticket_status o invoice_status, en lugar de varios booleanos superpuestos. Mantén los valores almacenados estables y simples para poder cambiar el texto mostrado después sin migrar datos.

¿Cómo nombrar múltiples relaciones a la misma tabla sin confusión?

No reutilices nombres genéricos como owner_id o type cuando signifiquen cosas distintas. Usa nombres con rol como created_by_user_id, approved_by_user_id o payment_method para que pantallas y filtros se expliquen por sí mismos.

¿Cuándo debemos renombrar una tabla o columna y cómo evitamos romper cosas en AppMaster?

Renombra temprano, antes de que pantallas, filtros e informes dependan del término antiguo. En AppMaster, actualiza los nombres en Data Designer y regenera para que la UI y la API permanezcan alineadas y no se desvíen con el tiempo.

Fácil de empezar
Crea algo sorprendente

Experimente con AppMaster con plan gratuito.
Cuando esté listo, puede elegir la suscripción adecuada.

Empieza