Evitar duplicados y reservas dobles
Objetivo
Hacer que una tabla rechace de plano dos tipos de registro:
- Duplicados — un segundo producto con el mismo código, una segunda persona con el mismo correo.
- Reservas dobles — una segunda reserva de la misma sala para una hora que se solapa con una ya hecha, un segundo turno para la misma persona a la misma hora.
Requisitos previos
- Ha iniciado sesión con un rol de creador y la solución de la tabla está abierta.
- Para una regla sin solapamientos, la tabla tiene dos campos de fecha y hora: cuándo empieza el período y cuándo termina.
Pasos
- Abra la tabla y seleccione Restricciones de tabla en su menú.
- Añada una regla:
- Sin duplicados — y elija el campo. La regla dice: Dos registros no pueden compartir un valor en Código.
- Sin solapamientos — y elija los campos de inicio y fin del período y, si las reservas de cosas distintas pueden solaparse entre sí, el campo que dice qué se reserva: Dos registros no pueden solaparse en el tiempo, por cada Sala, desde Inicio hasta Fin. Deje el primer cuadro en toda la tabla cuando solo haya una cosa que reservar.
- Seleccione Guardar.
Para quitar una regla, seleccione la papelera al final de su línea y luego Guardar.
Qué ocurre entre bastidores
- Es la base de datos la que aplica estas reglas, no el formulario. Se cumplen se escriba como se escriba un registro — en un formulario, con una importación de hoja de cálculo, con un script, con un proceso — y se cumplen cuando dos personas guardan en el mismo instante: un guardado tiene éxito y el otro se rechaza. Una comprobación escrita en una regla de negocio no puede prometerlo, porque ambos guardados pueden leer «todavía no hay nada» antes de que escriba ninguno.
- Un registro con el campo vacío no es un duplicado. Cualquier número de registros puede dejar vacío un campo único. Si además hay que rellenarlo, hágalo también obligatorio.
- Los períodos consecutivos no se solapan. Una reserva que termina a las 10:00 y otra que empieza a las 10:00 están permitidas.
- A quien guarda se le dice qué regla incumplió. Un guardado rechazado indica que el valor ya se usa en ese campo, o que el período se solapa con otro, y no se guarda nada.
- Las reglas viajan con la solución y se aplican en todo entorno al que se importe.
Cuando los registros existentes ya incumplen la regla
Una regla solo se puede añadir si los registros que ya hay en la tabla la cumplen. Si dos productos ya comparten código, guardar una regla Sin duplicados sobre Código se rechaza con un mensaje que nombra el campo, y la tabla conserva las reglas que tenía. Su regla se queda en la pantalla: corrija los registros y seleccione Guardar de nuevo.
Solución de problemas
- Los selectores del período están vacíos. — La tabla no tiene campos de fecha y hora propios. Añada primero los campos de inicio y fin.
- No se ofrece un campo que quiero. — Los archivos, las imágenes y las búsquedas en varias tablas no pueden formar parte de una regla: no contienen un único valor comparable. Tampoco se ofrecen campos de la plataforma como Fecha de creación.
- Una regla que quité parece seguir rechazando. — Asegúrese de haber seleccionado Guardar después de quitarla; la lista se guarda entera.
Escenarios relacionados
- Numerar los registros automáticamente — cuando la plataforma debe crear el número de referencia por usted.
- Hacer un campo obligatorio o de solo lectura.
- Añadir un campo a una entidad.