distintas Categorias en PHP

Bi0HaZaR

Buenas! estaba viendo algunas webs y me he fijado en que a mi me haria faltar poner secciones, y que al darle vaya a la seccion de esa categoria.. estuve leyendo un poco y vi que era jugar con las ids.. pero no estoy yo muy seguro, alguno podeis decirme como haceis las categorias asi yo sigo esa forma? muchas gracias :P

murpix

No se trata de jugar con las ids, sino mediante el id, obtener la categoría de las noticias mediante una consulta. El diseño de la tabla noticias tendría que tener:
idnot idcat ... Ej: 1 1 ...
Luego otra tabla que contena el nombre de las categorias:
idcat nombre ... Ej: 1 General

Es decir en la tabla noticias, que es la que hemos puesto de ejemplo, tu guardas el id de la categoria que le hayas asignado (un valor numérico), y luego mediante una consulta obtienes el nombre de la categoria, porque seria un error y guardar bytes innecesariamente el tener solo una tabla de noticias poniendo:
idnot categoria... Ej: 1 General..
Eso seria una base de datos mal diseñada, y bastante mal optimizada.

Mal hecho (1 sola tabla)
#Tabla noticias
idnot categoria autor comentario fecha
1 General murpix comentario 12/12/03
2 Juegos murpix comentarios 12/12/03
3 General murpix comentarios 12/12/03

Este ejemplo como puedes ver sería un mal diseño de la base de datos, estas guardando mas bytes de los necesarios porque guardas el nombre completo de la categoría una vez tras otra, al igual que pasaría con el autor, entonces el resultado correcto sería esto:

Bien hecho (3 tablas)
#Tabla noticias:
idnot idcat idautor comentario fecha
1 1 1 comen 12/12/03

2 3 1 comen 12/12/03
3 1 1 comen 12/12/03

#Tabla categorias:
idcat nombre fecha(<- Por poner otro campo)
1 General 12/12/03
2 Juegos 12/12/13

#Tabla usuarios:
idautor nick fecha mail ....
id murpix 12/12/12 ksadfasdf@sadf.com

Resultado
Ahora tendrias 3 tablas que simplemente con hacer una consulta de varias tablas mediante el idcat o idautor a la tabla correspondiente obtendrias el nombre de la consulta a realizar. y sin repetir el nombre varias veces solo guardando el id, que es un numero entero y ocupa menos espacio en la base de datos.

Bien, espero que veas el ejemplo y lo que te quiero dar a entender el diseñar bien una base de datos y a la hora de guardar los campos y por que se usa el id (identificador unico del registro), y que te sirva para añadir categorias u optimizar tu base de datos. Que no es solo añadir un campos mas así sin mas.

Un saludo feoh :)

Usuarios habituales

  • murpix
  • Bi0HaZaR