![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Información y consejos para proyecto web
Hola, tengo que preparar el análisis de un proyecto web y me gustaría leer opiniones de personas que tengan experiencia en algo parecido para así tomar una decisión u otra.
El proyecto es para una cadena de empresas asociadas y sus sucursales, las cuales necesitan un sitio común donde almacenar las incidencias de los artículos que les ha llegado defectuosos, estropeados, rotos, los que se han deteriorados con el tiempo, etc. y que todos puedan consultarlos mediante varios filtros. Resumiendo: usuarios, artículos y fotografías de los artículos dañados (esto de las fotos es el principal problema). Explico un poco el proceso que se pretende: en cualquiera de las empresas o sucursales asociadas reciben un pedido de la central y llegan una serie de artículos dañados en el transporte, porque han estado mucho tiempo al sol, porque han estado almacenados en un lugar húmedo, etc. y también puede ser que lleguen correctamente pero que se estropeen después de un tiempo en los almacenes. Entonces el usuario entra en la web, se da de alta si no ha entrado antes, da de alta la referencia del artículo dañado si no existe o le aparecen los datos para confirmar, si ya existe. Ahora debe rellenar un formulario con varios datos del artículo, defectos detectados, etc. y adjuntar fotografías de los mismos, puede subir cuantas fotos le parezca. Cualquier otro usuario puede consultar fotos de artículos por usuario, zonas, tipos de defectos, etc. para comprobar, por ejemplo, si un artículo se daña más en el norte (zona más fría y húmeda) o en el sur (zona más calurosa y seca), puede consultar sólo sus artículos y fotos, los de otro usuario (empresa/sucursal), los de una zona en especial: Cantabria, Andalucía, etc., los que lleven cierta cantidad de tiempo dados de alta, etc. Además debe llevar una opción de estadísticas donde filtrar por todos los apartados que deseen, eso no es problema tampoco. En general todo es bastante simple, el principal problema aquí es que haciendo unos cálculos “así por encima” nos ha salido que en el primer año pueden almacenarse unas cien mil fotos, en tres años alrededor de un millón de fotos y a partir de ahí se estabilizaría porque se eliminarían los registros más antiguos. Las fotos deben ser todas de formato 'jpg' y al guardarlas se deben convertir si no lo son. Pero otra premisa que exigen es que hay que mantener los tamaños originales de las mismas. Y esto sí es un problema porque ya me veo yo a la gente haciendo fotos de 12 megas cada una, pero bueno, ellos sabrán lo que quieren pagar de ancho de banda ![]() ![]() Y bien, aquí van las preguntas:
![]() |
#2
|
||||||
|
||||||
Hola Casimiro Notevi,
Te comento mi opinión personal: Cita:
En un proyecto similar, lo hemos hecho es crear una tabla en base de datos, con un ID autogenerado y el Nombre original del fichero. Al subir la foto, registras la entrada en la tabla de imágenes y la imágen la subes al directorio de imágenes y le cambias el nombre por el ID del registro creado para ella. Para los listado de imágenes tiras de la tabla en base de datos. Cuando un usuario quiere descargar una imagen, localizar el fichero correspondiente al ID que se quiere descargar y al descargar lo haces con el nombre original de la imagen (que estaba también almacenado en la misma tabla) Cita:
Sin contar con los inconvenientes de tener todo el contenido de la Web en base de datos. Si no tienes muy muy bien configurada la página en Joomla, puedes tener grandes problemas de tiempos de carga. Te recomiendo que todas las páginas que puedas las hagas con html, php o asp directamente. Ganarás mucho control, estructuración y velocidad de carga. Cita:
Cita:
Si te es posible, respeta los estándares W3C, AAA, CSS, etc. Puedes utilizar DreamWeaver, mezclando plantillas con "includes" de php estructurados para no duplicar mucho código. Cita:
Cita:
Revisa periódicamente los tiempos de carga de las páginas (hay sitios que dan el tiempo de carga de cada fichero de tu web) Estructura bien el proyecto para crear unidades que puedas reutilizar desde distintos módulos. Si vas a indexar algunas páginas en buscadores, utiliza para esas páginas nombres amigables. En páginas que vayas a indexar en buscadores, no utilices AJAX para cargar contenido estratégico para la indexación. Seguro que hay mucho más, pero ahora no me brotan las ideas. Bueno, un poco "espeso", pero espero que te ayude. Un saludo. |
#3
|
||||
|
||||
Cita:
a ver unos pensamientos al aire... por si las moscas te sirve alguno... Por mi parte yo almacenaria las fotos en un directorio... y no en la DB; Lo de la estructura del directorio para mi dependeria del mismo desarrollo en si... aunque de una como sabes tirar todas las fotos en un solo directorio no es recomendable... algo como "/photos/año/mes/numerodecaso/img1.jpg" poria servir. aunque joomla tiene unos administradores de ficheros... la verdad mejor seria lanzarte a un desarrollo desde 0 para la herramienta como tal... si la herramienta va acompañada de un sitio informativo habria que tener en cuenta su complejidad si es muy complejo depronto un wordpress o un joomla te ayude. Con lo del lenguaje, de seguro que yo me iria por PHP + MySQL... te ofrece buen rendimiento... y como dices que no tienes mucha experiencia en las webapps... pues la comunidad php es grande y tutoriales sobran en toda la red... aquí una comunidad de desarrollo de aplicaciones web si depronto tienes algo de tiempo para experimientar echale un ojo a las bases de datos NOSQL... google por ej ya no usa MySQL... tiene una nueva base de datos que se llama BigTable; facebook tomo el mismo camino e implentó cassandra... http://cassandra.apache.org/; Hasta donde entiendo (no he leido mucho) estas bases de datos dan mayor velocidad a las aplicaciones web siempre y cuando la estructura de la base de datos no sea muy compleja... mas que todo si solo se trata de unas pocas tablas pero muchos datos en ellas... twitter creo que vá en las mismas. Si por alguna cosa... ves que el proyecto se dimensiona algo grande, puedes hacer mano de un frwamework... depronto Symphony te pueda ayudar (hasta tiene funcionalidades para ajax)... aquí un libro detallado otra cosa (casi se me escapa)... en la web no despliegues las imágenes tal cual las subes... puedes usar un generador de miniaturas... esto te ayuda muchisimo con la carga de la imágen... al lado de la misma imágen puedes colocar un link para descargar el archivo original. De todos modos... trata siempre de echar mano de clases ya preparadas o crear tus propias clases para las cosas sencillas y tediosas... conectividad a la DB, generación de contenido... este sitio tiene clases para cada cosa... Pues... hasta aquí los pensamientos al aire... por lo demas... aqui estamos tus compadres... y con los compadres pa las que sea. ![]()
__________________
Buena caza y buen remar... http://mivaler.blogspot.com |
#4
|
||||
|
||||
Por si acaso no lo he citado antes, lo principal en la web será la consulta de las fotos por distintos parámetros, todo girará alrededor de las fotos de los distintos artículos haciendo búsquedas por referencias, marcas, descripciones, fechas de alta, etc. y mostrándose las fotos de las mismas.
|
#5
|
||||
|
||||
Cita:
Pues no tengo mucha experiencia en Web, pero me interesa que me vayas comentando cómo va el proyecto, Las decisiones que tomas y qué resultado dan. En cuanto a las preguntas, la primera es la eterna discusión. Creo que nunca se pondrán de acuerdo los defensores de una y otra postura. Mi experiencia en este campo (no es con una apliación web, pero la problemática es la misma desde una aplicación no-web) ha sido la de escoger guardar los ficheros fuera de la Base de datos. Hay razones para lo uno y para lo otro, pero se trata de ver el peso de cada una y las ventajas que te puede aportar. En mi caso: * Al incluirlas en la Base de datos el tamaño de esta hace más complejas las tareas "varias" a realizar con la BD. Backups, Restauraciones, copias,... Una simple multiplicación da muestra de ello. Por ejemplo, fotos de 5 MG; Cuando tengamos 300.000 fotos y hagamos el Backup. ¿Cuanto va a tardar? ¿Dónde lo vamos a meter? * Al incluir las imágenes fuera de la Base de datos tenemos mucho más control sobre ellas y más facilidad para realizar todo tipo de operaciones. Copias de seguridad, cambios de tamaño, miniaturas,... * Podemos tenerlas divididas en diferentes ubicaciones físicas de forma mucho más fácil. ································································································ En nuestro caso partimos de un directorio inicial, a partir de ahí tenemos diferentes Volúmenes (VOL) y dentro de los volúmenes, diferentes directorios (DIR). Se tiene en cuenta que cada Directorio no supere un tamaño especificado u un número de ficheros fijado (5000, por defecto), de esta forma se controla que cada directorio no tenga ni demasiado tamaño ni demasiados fucheros. Esta ubicación de: UBICACIÓN -> VOL -> DIR facilita, por ejemplo, que con pocos cambios se puedan mover los Volúmenes del 1 al 1000 a otra ubicación (otro disco) modificando sólo la Ubicación inicial. Lo mismo pasa cuando un disco cae, basta con cambiar la ubicación para que las imágenes se vayan a buscar a otro disco (replicación). ································································································ * Otras aplicaciones no tienen porqué tener acceso a la base de Datos. Basta con que se les pase la ubicación del fichero que necesitan (esto hay que evaluar en cada caso si es bueno o malo). * Un inconveniente de este, es que los directorios de imágenes/documentos deben estar accesibles para más gente/programas de lo necesario. Es decir, cualquier aplicación que deba acceder a una imagen/documento, debe tener acceso al directorio de imágenes. ![]() ![]() ![]()
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#6
|
||||
|
||||
Lo del tema del acceso a directorios en las aplicaciones web se maneja mas facil pues con los permisos de linux solo permites que el usuario del webserver (apache por lo general) sea quien tenga permiso de entrar a ese directorio y se le restringe el acceso y escritura al publico y/o al grupo.
__________________
Buena caza y buen remar... http://mivaler.blogspot.com |
#7
|
||||
|
||||
Cita:
// Saludos |
#8
|
||||
|
||||
Voy tomando notas de todos vuestros comentarios, por ejemplo:
¿Eso de qué va? |
#9
|
||||
|
||||
Siguiendo el ejemplo de movorack, si tienes el directorio
Código:
/photos/2010/04/33025/img1.jpg Código:
http://tuservidor.com/photos/2010/04/33025/img1.jpg Código:
deny from all Código:
http://www.terawiki.clubdelphi.com/archivos/Delphi/Tools/CloneDelphiWizard.zip Código:
http://www.terawiki.clubdelphi.com/archivos/Delphi/Ejemplos De todas formas, hay que tener en cuenta, que el Apache debe estar configurado para procesar archivos .htaccess. // Saludos |
#10
|
||||
|
||||
Las razones que expone Neftali son bastante convincentes para almacenar las fotos fuera de la base. Aunque si generas miniaturas, quizá éstas sí podrías guardarlas en la base. Sería más cómodo para generar listados.
Recuerda que con PHP también puedes usar Firebird, así que no tendrías que desprenderte de tu motor favorito. Al guardar las imágenes en archivos en disco, hay que tener en cuenta que no puedes guardarlas en rutas accesibles desde la web (a menos que cualquiera pueda verlas). Tendrás que impedir su acceso y usar el mismo PHP para recoger las fotos y servirlas. Desde luego, no creo que ningún CMS como joomla, drupal, wordpress, etc. sirva para esto. En todo caso, sería más adecuado algo como el w2box, que es el que usamos aquí en los foros para gestionar los archivos del FTP público. Aunque más que nada para darte una idea, porque también pienso que los mejor es hacerlo desde cero, que no parece un proyecto complejo. // Saludos |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Consejos para empezar con firebird | seoane | Firebird e Interbase | 21 | 22-03-2007 05:14:33 |
Consejos para última compilación | Pedro-Juan | OOP | 2 | 14-03-2007 20:44:11 |
Consejos para ahorrar. | marcoszorrilla | La Taberna | 3 | 03-02-2007 01:59:55 |
Obtener información de Proyecto DLL (ProductVersion) | ContraVeneno | API de Windows | 2 | 02-02-2007 19:30:15 |
Consejos para ventanas modales ? | Tecnic2 | OOP | 14 | 16-10-2006 22:37:20 |
![]() |
|