Tengo una columna: standard BOOLEAN NOT NULL
Me gustaría imponer una fila Verdadero y todas las demás Falso. No hay FK ni nada más dependiendo de esta restricción. Sé que puedo lograrlo con plpgsql, pero esto parece un mazo. Preferiría algo como a CHECK
o UNIQUE
restricción. Cuanto más simple, mejor.
Una fila debe ser verdadera, no todas pueden ser falsas (por lo que la primera fila insertada debería ser verdadera).
La fila deberá actualizarse, lo que significa que tengo que esperar para verificar las restricciones hasta que se realicen las actualizaciones, ya que todas las filas se pueden configurar como False primero y una fila True después.
Hay un FK entre products.tax_rate_id
y tax_rate.id
, pero no tiene nada que ver con la tasa impositiva predeterminada o estándar, que puede seleccionar el usuario para facilitar la creación de nuevos productos.
PostgreSQL 9.5 si es importante.
Antecedentes
La tabla es la tasa de impuestos. Una de las tasas impositivas es la predeterminada ( standard
ya que la predeterminada es un comando de Postgres). Cuando se agrega un nuevo producto, la tasa impositiva estándar se aplica al producto. Si no hay standard
, la base de datos debe hacer una conjetura o todo tipo de comprobaciones innecesarias. La solución simple, pensé, era asegurarme de que haya una standard
.
Por "predeterminado" arriba, me refiero a la capa de presentación (IU). Hay una opción de usuario para cambiar la tasa impositiva predeterminada. Necesito agregar controles adicionales para asegurar que la GUI / usuario no intente establecer tax_rate_id en NULL, o simplemente establecer una tasa impositiva predeterminada.