![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Cita:
Lo unico es q el tiempo de Backup/Restore se hace mas largo.. |
|
#2
|
||||
|
||||
|
Tal y como comenta Delfino, el tamaño de la base de datos no es problema, no va a decaer el rendimiento por ese motivo, el único inconveniente es hacer un backup de un archivo tan grande, pero también tienes el inconveniente de que si tienes ficheros separados en otro directorio también tendrías que hacer otro backup aparte de los mismos.
También veo por los comentarios que has puesto, que el servidor sería windows, gran error. Debe ser linux, no sólo por seguridad, estabilidad, etc. sino también por rendimiento, que es muchísimo mayor que el que pueda ofrecer windows. Garantizado. Usando linux tienes la ventaja del sistema avanzado de permisos, por lo que si decides usar la opción de tener los ficheros fuera de la base de datos, puedes tener un usuario con permisos para leer/escribir en ese directorio y nadie más pueda entrar en el mismo, ni a mirar. En cuanto al tamaño de la BD, todavía no has dicho nada, pero hay casos comentados de tamaños enormes, es un tema que hemos tratado en diversas ocasiones, por ejemplo aquí.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#3
|
||||
|
||||
|
Sinceramente yo elegiría en método de Indexar los documentos en la DB y guardarlos en el Sistema de Archivos.
Pero no has mencionado cuál sería el ciclo de vida de los documentos. Luego que los subes al servidor, los tedrás que servir de nuevo? Permitirás futuras modificaciones? Un ciclo de vida así es complicado de controlar Código:
--- SUBIR -->
^ |
| |
MODIFICAR |
| |
SERVIR <--------
Con respecto a lo que comenta Casimiro, sobre instalar el servidor en Linux -opinión que comparto-, no sé si DataSnap funcione sobre Linux. En mi caso, implemento los servidores de aplicaciones en LAMP o una variante de esta configuración (Python, PostgreSQL, Linux y el servidor que mejor se adapte a mis necesidades -normalmente Apache-). Saludos! |
|
#4
|
||||
|
||||
|
Como dije al principio, la DB puede tomar un tamaño enorme por no decir bestial, como dice la frase divide y vencerás.
La idea es crear una base de datos que contenga nombre de base de datos externas que estarán relacionadas con los pacientes. Me explico, está la base de datos principal que se llamara: HospitalXY dentro de ésta están las tablas en común (Pacientes, Medicos, Habitaciones, etc), y la base de datos que contendrán nombre de base de datos relacionada con los pacientes, que se llamará ArchivosXY. Cita:
(BASEDATOS = nombre de como se llamara la base de datos que estará relacionada con el paciente) (PACIENTEID = paciente que has ingresado en la base de datos pacientes) Cita:
A la hora de realizar las secuencias SQL's no habrá ningún problema, eje.
No necesitas hacer un WHERE en la segunda adoQry por paciente ya que sabemos cual es el, pero puede hacer un WHERE por IDSCANNER para sólo mostrar uno o más de uno. Espero haber contribuido en tu proyecto y despejar dudas ![]() Un saludo. P.D.: Esto está realizado en SQL SERVER
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber. Última edición por olbeup fecha: 29-02-2012 a las 09:43:34. |
|
#5
|
||||
|
||||
|
Cita:
![]() Si tuviera que 'dividir', en todo caso, tendría una Bd para todo menos para los documentos. En otra BD estarían únicamente los documentos. Lo del tamaño de la BD, habría que definir lo de "bestial", he visto algunos usuarios que llaman bestial a unos pocos de megas, para mí "normal" sería rondando los 50 GB, muy grande puede ser varios cientos de gigabytes, y 'bestial' sería rondando el Tera. No sabemos qué tamaño tendrá la BD que va a tratar Aldo porque no ha dado cifras. Incluso recuerdo ahora a un usuario que llamó 'bestial' a una tabla en .dbf que tenía casi cuatro mil registros. Todo es relativo en este mundo ![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#6
|
||||
|
||||
|
Efectivamente, en la otra base de datos estarían los (JPGE, DOC, XLS, EMAIL, ETC) ya que estas son las que van a crecer.
Sobre el tamaño de las bases de datos, de momento no me he manejado con tamaño grandes, para mi grande es a partir del 1Gb Aldo, el motor de base de datos SQL SERVER 2005 EXPRESS es el que yo utilizo no te vale para ti, porque el tamaño máximo de esta base de datos es de 4Gb y para el 2008 EXPRESS creo que lo han subido a 16Gb, con estos tamaños ni para café. Un saludo
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber. Última edición por olbeup fecha: 29-02-2012 a las 13:02:49. |
|
#7
|
|||
|
|||
|
Hola a todos. Como os había prometido, aquí tengo la solución al problema que he planteado y que os agradezco la atención que habéis prestado, pero me he decantado por esta solución.
1. En el lado cliente. En el procedimiento que se encarga de salvar los datos.
2. En el lado capa de negocio hay más de un evento que hay que programar.
Como conclusión final os diré que también programé una función par a una UDF que se ejecuta desde los triggers de AFTER DELETE y AFTER UPDATE de la tabla donde se almacena la referencia de los ficheros contenidos en el catálogo de documentos. Estos triggers se ejecutan para mantener la integridad referencial entre los registros de esta tabla en la base de datos y los ficheros físicos guardados en el disco duro del Servidor. Donde: 1. El caso del trigger AFTER DELETE, se ejecuta por razones obvias que debe eliminar el fichero del registro que se ha eliminado de esta tabla. 2. en el caso del trigger AFTER UPDATE, se ejecuta cuando se ha cambiado el nombre de un fichero por otro ( esto incluye no solo el nombre sino también su contenido ). En este caso se elimina el viejo fichero y solo queda guardado en el catálogo de documentos el nuevo fichero. Por otro lado. Os explico que me decidí por esta variante, por todas las cosas que antes se han debatido en este hilo, más las condiciones reales de implantación de esta aplicación en el cliente final. Donde he tenido en cuenta lo siguiente: 1. No puedo contar con la base da datos sobre UNIX como me sugeristes, porque esto encarecería el proyecto, obligando al cliente final tener más de un servidor con distintos sistemas operativos, ya que de cualquier forma este cliente necesita el Windows en el lado Servidor, para que se ejecute también allí mi aplicación de la capa de negocios y otras aplicaciones que se ejecutan sobre windows. 2. El tamaño de la base de datos es algo a tener en cuenta sobre todo en los procesos de backups y restores. 3. El sistema propuesto por olbeup no me convence del todo, porque no me gustaría tener tantas bases de datos como pacientes hayan registrados en la aplicación. Además de que creo que la solución que ha propuesto no se refiere a bases de datos Firebird. Si es el caso, entonces soy yo el que no conoce esa nueva forma de referirte a otras bases de datos desde la base de datos actual. En resumen, el caso de '.dbo.' creo que es algo que se usa en las bases de datos de SQL Server y alguna otra, pero no en Firebird. 4. Por último y no menos importante, era mantener la transparencia de localización de los archivos en el Servidor sin tener que estar compartiendo directorios en la red para poder acceder a ellos y poder guardar y recuperar los ficheros de dichos directorios. Además de los inconvenientes que existen en windows con todo el sistema de Seguridad al compartir directorios en la Red. Luego queda algo referente a la visualización de los documentos cada vez que el cliente así lo requiera. En ese caso me decanté por tener una tabla en memoria que solo contiene un registro con un camopo Blob en el que se almacena el fichero que es recuperado de su lugar físico del disco duro del servidor. Para ser mostrados en el lado cliente se trae una copia de dicho fichero y se visualiza con la función del API ShellExecute. Aquí queda una cuestión interesante a tener en cuenta y es si utilizando la función Shellexecute se puede abrir dicho fichero en modo de solo Lectura, para que no pueda ser modificado por ningún cliente de la aplicación una vez que ya está guardado en el catálogo de documentos. Tengo una vaga idea y es cambiarle los atributos al fichero y ponerle 'De solo lectura', pero no sé como se comportará cuando el fichero sea abierto por su aplicación. ¿ Alguna idea al respecto ? Espero os haya servido de algo. Además si alguien encuentra algún fallo os agradezco que me lo hagan saber y así corregir y/o perfeccionar este planteamiento. |
![]() |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Crear catalogo con IBSQLMonitor | learning_delphi | Firebird e Interbase | 11 | 02-10-2011 11:18:28 |
| Impresión de catálogo con imagenes | quali | Impresión | 0 | 16-04-2011 16:13:02 |
| Catalogo de Colonias | mRoman | Varios | 10 | 22-03-2011 19:10:00 |
| generar e imprimir catalogo | fartycl | Impresión | 3 | 11-10-2005 17:57:35 |
| Ventana Auxiliar O Catalogo | juan-manuel-gl | Conexión con bases de datos | 1 | 09-02-2005 21:54:24 |
|