LOWLEVEL está en beta privada — se entra por invitación
LOWLEVEL
Entrar
← BlogOficio
№ 016septiembre de 2026

Clientes: el nombre sale en tu página con dos casillas encendidas, y las dos nacen apagadas

Una ficha por cliente con su CIF, dos índices únicos que no adivinan, la confidencialidad decidida en dos sitios porque son dos cosas distintas, y un borrado con freno que ofrece la salida.

Durante dos años, para quién era un rodaje se guardaba en una casilla de texto libre dentro del proyecto. «Ayuntamiento de Santander», «Ayto. Santander» y «ayuntamiento santander» eran tres clientes distintos, así que el dato existía y no contestaba nada: ni cuánto trabajo se ha hecho para alguien, ni qué CIF hay que poner en la factura, ni si a esa persona se la puede nombrar fuera. Ahora hay una ficha.

De quién es un cliente

En este producto hay tres clases de dato, y elegir mal la clase es lo caro. Un rodaje es del estudio. Un spot de la comunidad es de quien lo subió, y sobrevive a que su autora cambie de estudio. Un cliente es lo primero: quien contrata es la productora, la factura es suya, y el CIF que se guarda es el de un tercero tratado por ella y no por el operador que lo tecleó. Dicho de otra manera, un cliente tiene que seguir estando cuando el becario se va.

La clave que une un proyecto con su cliente es doble —el identificador de la ficha y el del estudio, juntos— y eso no es adorno. Con una clave simple sería perfectamente escribible un proyecto de un estudio colgando del cliente de otro, porque las acciones referenciales de la base no pasan por el aislamiento por filas. Lo que habría al otro lado de esa fila es el nombre de un cliente ajeno.

Dos índices únicos, y ninguno adivina

El duplicado lo rechaza la base y no una comprobación en Python: el mismo nombre plegado a minúsculas y sin espacios sobrantes, y el mismo identificador fiscal plegado quitando puntos, guiones y espacios. Ese segundo es la única igualdad que se puede afirmar: dos fichas con el mismo CIF son la misma entidad, aunque una diga «Ayto.» y la otra «Ayuntamiento de».

Lo que esos índices no resuelven es justamente «Ayto.» contra «Ayuntamiento de» cuando no hay CIF. Eso es una decisión de una persona, y decidir no es trabajo de un índice.

Hay además una consulta previa, y no es la frontera: es el ORDEN. Sin ella, con el cupo lleno, volver a teclear un cliente que ya se tiene contestaba 402 —mejora de plan— en vez del 409 que dice «ábrelo». El diagnóstico era falso, que es lo que lo hacía caro: mandaba a la página de precios a resolver algo que pagar no resuelve. Los dos mensajes dicen por cuál de las dos cosas ha chocado, porque «ya existe» a secas deja a alguien mirando un formulario que parece correcto.

El CIF avisa y nunca impide guardar

El dígito de control se comprueba y el resultado viaja dentro del 200 que acaba de guardar la ficha, como un aviso junto al campo. Un carácter de control dice que algo no cuadra, no qué no cuadra: quien teclea mal una cifra de un NIE ve señalada la letra, y la letra estaba bien.

El reparto del error es el que decide la política. Un dato equivocado que se guarda lo devuelve la administración y se corrige. Un dato correcto que se rechaza deja a esa persona sin poder usar la herramienta, o sea de vuelta al formulario de siempre. El correo y el teléfono ni siquiera se comprueban: son forma, y dar a entender que hemos verificado el contacto de un tercero sería mentir con nuestro logotipo encima.

El nombre en tu página pública: dos casillas

Nombrar a un cliente en el portafolio es opt-in dos veces, y las dos casillas nacen apagadas.

  • En la ficha del cliente: a esta empresa se la puede nombrar. Es del cliente porque la confidencialidad es de la relación.
  • En el proyecto: este trabajo va bajo acuerdo de confidencialidad. Es del proyecto porque un NDA es de un encargo concreto, no de la relación entera.

Las dos van unidas por una Y, así que olvidarse deja el nombre fuera. Y quien contesta la pregunta es una sola función, la misma para la página pública y para el estudio: si el estudio calculara por su cuenta a quién se está nombrando, un día enseñaría una respuesta y la página otra, y el que se equivocaría es el que decide si publicar.

Borrar tiene freno, y el freno ofrece la salida

El borrado es duro, porque el precedente escrito del producto es el borrado duro y no hay papelera en ninguna otra pantalla del estudio; inventar una aquí le daría dos significados a la palabra «borrar». Lo que no se hereda es qué pasa con lo que cuelga.

Una ficha con proyectos detrás devuelve un 409 diciendo cuántos son, y la salida está al lado: desasociarlos. Entonces el cliente se va y los proyectos se quedan, sin ficha, que es el estado legítimo de un proyecto propio. Un borrado en cascada de oficio habría borrado el trabajo por borrar la ficha de quien lo encargó.

Y hay un detalle de la clave foránea que solo se ve al borrar una cuenta entera. La comprobación se hace al final de la sentencia y no de inmediato, porque el borrado de cuenta se lleva la organización dejando que la cascada arrastre proyectos y clientes en un orden que la base no promete: con la comprobación inmediata, alguien podría quedarse sin poder darse de baja, leyendo un error de clave foránea en una pantalla que no habla de clientes.

Sí lleva cupo, y eso también es una decisión

Tres fichas en Gratis, cincuenta en Piloto, sin tope en Estudio y en Productora. Saber para quién trabajas, con su CIF y su histórico, es comercio y no cumplimiento: nadie deja de volar legal por no tener la cuarta ficha. Es lo contrario de lo que pasa con el libro de vuelo o con los checklists, que no se cobran en ningún plan.

El contador que se pinta en Ajustes sale del mismo sitio que rechaza, así que nadie se encuentra el 402 sin haber podido ver el número. Y ese 402 no ofrece mejorar de plan a quien ya está arriba del todo, por construcción y no por un if: los dos planes de arriba no tienen tope, así que el rechazo solo puede saltar donde hay peldaño encima.

---

<!-- ↑

Firmado
Equipo LOWLEVEL
Redacción
E.LOWLEVEL · 2026

Divulgación, no asesoramiento legal. La normativa cambia y cada vuelo tiene su contexto: comprueba siempre con AESA antes de volar.