Semi OT - Crear 1 tabla o 2?

From: Conrado Blasetti <conrado(at)mapfre(dot)com(dot)ar>
To: pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Semi OT - Crear 1 tabla o 2?
Date: 2014-01-31 13:43:07
Message-ID: 73A3A527647BB24F9587AA69EC1A4E16E51B8268@sar001241.Mapfre.ar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Gente, buenos días. Quisiera consultar lo siguiente.
Necesito almacenar y gestionar ciertos datos.
Se trata de información que va a trabajarse según el estado de un campo y cada registro posee aproximadamente 10 atributos mas, de distinto tipo (date, varchar, numeric...)
La tabla tiene su pk con un campo serial.
Ej:

Table: test

Id serial
Estado smallint(1) not null -CAMPO A TRATAR
Campo1
Campo2
CampoN

El campo "estado" es 1,2,3,4 o 0 (cero). Posiblemente en algún futuro se agreguen otros estados "5", "6", etc.
Este campo nace en 1 y luego pasa al resto de estado. Cuando llega al estado 4, el próximo estado es 0 (cero) que sería la identificación del registro para interpretar la "historia" o que ya fue tratado y se lo explotará en conjunto con otros campos. Ej. "estado" = 0 and "cliente" = 'PEPE' (solo listados, no interactivo)

Las búsquedas "interactivas" y de gestión simultanea (varias terminales) en esta tabla serán solamente por el campo "estado", 1,2,3 o 4.
La tabla va a crecer en 20 mil registros por mes aproximadamente.

El registro nace en estado "1", a los 10 minutos (dependiendo la gestión) pasa a estado "2" (update)
El registro en estado "2" a los 10 minutos (dependiendo la gestión) pasa a estado "3" (update)
El registro en estado "3" a los 10 minutos (dependiendo la gestión) pasa a estado "4" (update)
El registro en estado "4" a los 10 minutos (dependiendo la gestión) pasa a estado "0" (update)

Si no se generan registros en 1h, posiblemente todos los registros de la tabla tendrán el estado "0" hasta que se genere un nuevo registro.
Cada 30 segundos debo ejecutar 4 consultas. Una consulta para cada estado (1,2,3, y 4)

Cabe aclarar que el resto de atributos de esta tabla, también se actualizaran en cada paso de estado....

La consulta final es, como me convendría gestionar los datos?

1- Creo la tabla directamente con todos los datos y ejecuto las consultas de forma tradicional? Select * from table where estado = 1?

2- Creo una tabla con id y estado donde se hagan los insert y update esenciales y luego una segunda tabla donde tenga el resto de atributos para joinearla con el id de la tabla "cabecera"?

3- Me conviene hacer "delete" de los campos es estado 0 (o sea, luego del estado 4) e insertarlos en una tabla consolidada?

4- Aclaro que el mantenimiento de la bd no será diario por la gestión (24x7), autovaccum activado

Bueno, cualquier sugerencia, a disposición.
Saludos,

Conrado

PD:
PostgreSQL: 9.3
Version string: PostgreSQL 9.3.1, compiled by Visual C++ build 1600, 32-bit
SO: Windows.
Desarrollar : C# .NET (Npgsql y Mono)

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Omar Beltrán Cano 2014-01-31 14:06:03 Re: Semi OT - Crear 1 tabla o 2?
Previous Message Martín Marqués 2014-01-30 14:04:19 Re: Sugerencia de implementación