Hola.

Hace un tiempo tuvimos un problema similar, y resolvimos dejar todo en la
base de datos, por la accebilidad (si tengo acceso a la base tengo acceso al
documento y en este caso mis clientes deben por lo menos tener este acceso).

Hicimos una aplicacion que traspasa todo el archivo a texto y genera un
hash. y luego se reconstruye, no hemos tenido mayores problemas,  con este
metodo podemos almacenar cualquier tipo de archivo. Obviamente es un tema
importante a considerar el tamaño, en nuestro caso limitamos el tamaño de
los archivos a un peso determinado. Pero siempre esta el tema de que la base
de datos sea muy obesa.

Para hacer esto usamos tres campos:
nombre archivo: en caso de requerir reconstruilo en disco.
serial: codigo hash para leer/reconstruir el archivo
texto: contenido del archivo, esto es en byte's y llevados a un string de
hexadecimales, es un string para permitir trabajar con otros motores de
datos y mantener el mismo algoritmo.

Nosotros lo usamos principalmente para almacenar fotografias y logos, (en
general archivos pequeños).




2010/9/21 Alvaro Herrera <alvhe...@commandprompt.com>

> Excerpts from Ariel Centeno's message of mar sep 21 07:29:29 -0400 2010:
> >
> > Me parece lo mas logico guardar solo las referencias a los documentos en
> la base de datos. Es la forma mas rapida y evitas conversiones que por hay
> no funcionan del todo bien.
>
> Si la conversión no funciona "del todo bien", es un bug de tu
> aplicación.
>
> Respecto a que sea lo más lógico, no estoy de acuerdo.  Puede ser lo más
> simple, si sólo haces la parte más sencilla, pero si quieres manejar los
> documentos en forma transaccional, es mucho más complicado; en cambio si
> almacenas los documentos en la base de datos, la parte transaccional se
> maneja sola.
>
> Lo otro a considerar son los respaldos.  Si los metes en la BD, los
> documentos son parte del pg_dump.  De lo contrario debes respaldarlos
> por separado (y tienes que tener cuidado de que los respaldos de los
> archivos sean consistentes con los de la BD).
>
> También está el tema de la seguridad: cómo hacer que cada usuario sólo
> vea los documentos a los que tiene acceso.
>
> Otro: si pones los dctos en la BD puede ser mas simple hacer indexacion
> del texto en ellos.
>
> Y supongo que otras consideraciones se me olvidan.
>
> En resumen, no es tan facil como parece; en la BD muchos problemas ya
> estan resueltos.
>
> --
> Álvaro Herrera <alvhe...@commandprompt.com>
> The PostgreSQL Company - Command Prompt, Inc.
> PostgreSQL Replication, Consulting, Custom Development, 24x7 support
> -
> Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org
> )
> Para cambiar tu suscripción:
> http://www.postgresql.org/mailpref/pgsql-es-ayuda
>



-- 
Javier Fritz

Responder a