Foros del Web » Programando para Internet » PHP »

Post relacionados y Categorías sin base de datos

Estas en el tema de Post relacionados y Categorías sin base de datos en el foro de PHP en Foros del Web. Hola a todos! Estoy creando un blog sencillo sin ningún CMS y sin base de datos , así solo uso las características que necesito. Voy ...
  #1 (permalink)  
Antiguo 21/09/2014, 06:35
 
Fecha de Ingreso: julio-2011
Mensajes: 25
Antigüedad: 12 años, 9 meses
Puntos: 0
Pregunta Post relacionados y Categorías sin base de datos

Hola a todos!

Estoy creando un blog sencillo sin ningún CMS y sin base de datos, así solo uso las características que necesito. Voy solucionando los problemas que me surgen, pero me he atascado con 2.

Al final de cada post quiero mostrar otros artículos relacionados de forma automática. He encontrado este script en moz.com que hace exactamente lo que busco, pero los enlaces están caídos:

http://moz.com/ugc/adding-related-post-links-without-a-database

A ver si la autora los pone otra vez, aunque es de 2011.

El otro punto podría tener solución similar al anterior, y es crear la página con categorías, es decir, que cuando pulsen en la categoría "perros" salga un listado con todos los artículos correspondientes a esa categoría ordenados por fecha.

¿Alguien conoce una solución similar a la de ese post de moz? O una alternativa mejor O me conformo con alguna "pista" para tirar del hilo y seguir estudiando el tema

Un saludo y muchas gracias por vuestro tiempo.
  #2 (permalink)  
Antiguo 21/09/2014, 10:31
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: Post relacionados y Categorías sin base de datos

Un buen punto de partida es Sqlite3. Esta base de datos es un único archivo portable que te va a facilitar la vida.

Trabajar con archivos sueltos no es una buena idea, cuantos mas post tengas mas archivos tendras, llegando a un punto donde te sera muy dificil organizarlos. Por otro lado, el trabajar con archivos implica varias cuestiones y problemas que no estas considerando, por ejemplo, a un archivo solo puede abrirlo un usuario por vez, por lo que si dos visitantes quieren ver el mismo post en el mismo instante, uno de lo dos no podra. Las bases de datos no son el enemigo a combatir o a evitar, sino aliadas que resuelven gran parte de los problemas de integridad y concurrencia.

Otra base de datos orientada a archivos es FireBird, es mucho mas potente que Sqlite y mucho mas completa y potente que Mysql. Por supuesto que tiene sus puntos debiles como todo, pero es una buena alternativa.

Conclucion:
Si quieres hacer algo chico: Sqlite.
Si quieres hacer algo grande: Firebird.

Por ejemplo, hace un mes hice este ejemplo para un usuario de este foro: https://github.com/Proyecto-NSD/PHP-SQLite-Agenda es una agenda realizada con SQlite, la encontraras muy breve y concisa como punto de partida.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #3 (permalink)  
Antiguo 21/09/2014, 10:39
 
Fecha de Ingreso: julio-2011
Mensajes: 25
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Post relacionados y Categorías sin base de datos

Igual estoy muy espeso pero no te entiendo:

Cita:
... y problemas que no estas considerando, por ejemplo, a un archivo solo puede abrirlo un usuario por vez, por lo que si dos visitantes quieren ver el mismo post en el mismo instante, uno de lo dos no podra
Como no van a poder ver un post 2 personas a la vez
  #4 (permalink)  
Antiguo 21/09/2014, 13:40
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: Post relacionados y Categorías sin base de datos

Cita:
Como no van a poder ver un post 2 personas a la vez
Por eso te dije que hay varias cuestiones que no estas considerando al optar por usar archivos, no es que los programadores del mundo somos tontos y usamos bases de datos para aplicaciones multiusuario porque nos gusta consumir recursos y matar moscas a cañonazos, es porque hay varias cuestiones bastante complejas de resolver en cuanto al manejo de datos fisicos y las bases de datos proporcionan herramientas para lidiar con ellos.

Uno de esos problemas es la concurrencia.
Cuando un usuario (visitante) accede un post, si estas usando archivos, php abrirá el fichero y lo bloqueara para que los demas no puedan usarlo. Lo leera y lo mantendra bloquedo hasta que lo cierres. Si en ese lapso de tiempo, otro visitante entro y solicita el mismo archivo, no se podra abrir porque el primer visitante lo tiene bloquedo.
Compara a un archivo con un libro, si un lector lo esta leyendo, no puede venir otro a leerlo en simultaneo, no pueden leer al mismo tiempo 2 paginas diferentes, o peor aun, si el libro esta siendo escrito, no puede haber alguien leyendo ¿Entiendes la idea? piensa en que pasaria, si mientras uno lee otro graba en el mismo lugar, o peor aun, si cuando uno graba, otro regraba, o peor todavia, si uno graba, otro lee y otro regraba.

Las bases de datos nos facilitan herramientas para garantizar que si 2 personas quieren leer en simultaneo puedan hacerlo y tambien que alguien pueda grabar.

Las 2 bases de datos que te mencione, (en especial Firebird) son perfectas para sistemas multiusuario y te permiten tener todos los datos en un unico archivo.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #5 (permalink)  
Antiguo 21/09/2014, 17:54
 
Fecha de Ingreso: julio-2011
Mensajes: 25
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Post relacionados y Categorías sin base de datos

No he dicho que nadie sea tonto...

Igual me he explicado mal, disculpa mi ignorancia, pero acabo de hacer la prueba y he entrado a miblog.com/nombredemipost.php desde 3 ordenadores simultáneamente y sin problema.
  #6 (permalink)  
Antiguo 21/09/2014, 18:14
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: Post relacionados y Categorías sin base de datos

Cita:
Igual me he explicado mal, disculpa mi ignorancia, pero acabo de hacer la prueba y he entrado a miblog.com/nombredemipost.php desde 3 ordenadores simultáneamente y sin problema.
Leer un archivo demora milésimas de segundo, ¿Acaso has entrado al post desde 3 ordenadores diferentes en la misma milésima de segundo?

En fin, te he advertido de uno de los tantos problemas de usar archivos directamente, tu haz lo que quieras.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #7 (permalink)  
Antiguo 21/09/2014, 19:03
 
Fecha de Ingreso: julio-2011
Mensajes: 25
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Post relacionados y Categorías sin base de datos

Te agradezco mucho tus explicaciones.

Solo trato de entenderlo, nadie nace aprendido. Arriba dabas a entender, o así lo había entendido yo, que hasta que un usuario cerraba la página ningún otro usuario podía acceder.

Entonces cualquier página hecha en php, si no tiene una base de datos y acceden a la vez, por ejemplo, 100 ó 500 personas ¿a algunas no les dejará entrar? No tenía ni idea...

(Puntualizo que es una web con estilo de blog, y subo cada post/página manualmente, vamos un blog estático)

Última edición por Adrilao; 21/09/2014 a las 19:18
  #8 (permalink)  
Antiguo 21/09/2014, 19:44
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Post relacionados y Categorías sin base de datos

Estas confundiendo acceder a un archivo de script en PHP, que es de solo lectura, y puede ser accedido tantas veces como el WebServer soporte, con acceder a un archivo de DATOS COMPARTIDO, que solo se abre para escribir por un único usuario a la vez.
Un script en PHP es un programa interpretado que no contiene datos, sino instrucciones a ejecutar. No es lo mismo.
De hecho, si lo abrieses para modificar el código, solo lo podría hacer un único programador por vez, porque cumple las mismas restricciones que cualquier texto compartido.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 21/09/2014 a las 21:39

Etiquetas: fecha, post, relacionados
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:04.