Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Mejor forma de estructurar la información

Estas en el tema de Mejor forma de estructurar la información en el foro de PHP en Foros del Web. Hola chic@s. Voy a intentar realizar un script con el que el usuario podrá averiguar información sobre los tipos de extensiones de archivos. Veamos un ...
  #1 (permalink)  
Antiguo 12/02/2014, 10:39
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años, 1 mes
Puntos: 468
Mejor forma de estructurar la información

Hola chic@s. Voy a intentar realizar un script con el que el usuario podrá averiguar información sobre los tipos de extensiones de archivos.

Veamos un ejemplo:

.PDF
  • Información: PDF (sigla del inglés portable document format, formato de documento portátil) es un formato de almacenamiento de documentos digitales independiente de plataformas de software o hardware
  • Programas con el que poder abrir archivos .PDF: 1,2,3,4,5,6,7... con enlaces a sus páginas.
  • Algo más que se me ocurra.

¿ Cual es la mejor forma de extructurar y guardar esa información ??

Una base de datos ? No tengo mucha soltura y no se me ocurre como ir creando las tablas

Unas arrays?? Sería una array multi-dimensional ?
__________________
No te olvides de dar +1 a quien te echa un cable ;)
  #2 (permalink)  
Antiguo 12/02/2014, 11:29
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 361
Antigüedad: 10 años, 9 meses
Puntos: 55
Respuesta: Mejor forma de estructurar la información

Hola, yo veo 2 Opciones.

Definir completamente la informacion que mostraras de las extensiones.
1 Tabla

Tabla Extensiones
Campos:
Id
Extesion
Definicion
Uso
Historia
Enlaces
Etc
Etc

Para tener escalabilidad.
3 Tablas

Tabla Entensiones
Campos:
Id
Extension

Tabla Paricularidades
Campos:
Id
Particularidad

Tabla ExtensionParticularidad
Campos:
Id
IdExtension
IdParticularidad
Contenido

La tercera tabla une las otras 2.
Con eso es suficiente para empezar la lógica.
Espero te sirva.
Saludos
  #3 (permalink)  
Antiguo 12/02/2014, 11:43
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años, 1 mes
Puntos: 468
Respuesta: Mejor forma de estructurar la información

A poder elegir me gustaría que fuera de la siguiente forma. poniendo el mismo ejemplo:

Cita:
extension .PDF:

Definición:
PDF (sigla del inglés portable document format, formato de documento portátil) es un formato de almacenamiento ..... bla bla blaaa toda la definición

Software para su lectura o manejo:
  • Adobe Reader. ( con enlace )
  • Adobe Acrobat Family. ( con enlace )
  • bla bla bla ( con enlace )

Historia:
Los archivos PDF, junto con las aplicaciones que podían ver y crear este tipo de documentos, comenzaron a desarrollarse...bla bla bla

Características:[LIST][*]Es multiplataforma, es decir, puede ser presentado por los principales sistemas operativos (Mac, GNU/Linux, Windows o Unix), sin que se modifiquen ni el aspecto ni la estructura del documento original.[*]Puede cifrarse para proteger su contenido e incluso firmarlo digitalmente.[*]bla bla bla
¿ podría realizarlo de esta forma ?

Tabla extensiones:
id, extensión

tabla definición:
id,id_extension, definición ( cada linea una definición )

tabla software:
id,id_extensión, software ( cada linea un software con la id_extensión para indicar de que extensión lee el software )

tabla historia:
id, id_extensión, historia ( cada linea una historia )

tabla caracteristicas:
id,id_extension, características ( cada linea una caracteristica distinta y la id_extensión dice de que extensión estamos hablando )

¿ Es viable esta forma ?
__________________
No te olvides de dar +1 a quien te echa un cable ;)
  #4 (permalink)  
Antiguo 12/02/2014, 12:21
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 361
Antigüedad: 10 años, 9 meses
Puntos: 55
Respuesta: Mejor forma de estructurar la información

Desde mi punto de vista, lo que planteas es lo mismo que hacerlo solo con 3 tablas.

Ejemplo
Tabla Extension
Id/Entension
1 /PDF

Tabla Particularidades
Id/Paricularidad
1 /Software para su lectura o manejo

Tabla ExtensionParticularidad
Id /IdExtension/IdParticularidad/Contenido
1 /1 / 1 /Adobe Reader. ( con enlace )
2 /1 / 1 /Adobe Acrobat Family. ( con enlace )

Saludos.

Última edición por Erick_MD9; 12/02/2014 a las 12:27
  #5 (permalink)  
Antiguo 12/02/2014, 13:06
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años, 1 mes
Puntos: 468
Respuesta: Mejor forma de estructurar la información

Veamos si lo he entendido...

Tebla extensión:
id / Extension
1 / PDF
2 / ZIP
3 / MP3

Tabla particularidades:
id / Particularidad
1 / Definición
2 / Software para su lectura o manejo
3 / Características
4 / Historia

Tabla ExtensionParticularidad
id / id_Extension / id_particularidad / contenido
1 / 1 / 1 / La definicion de PDF....
2 / 3 / 4 / La historia de la extensión MP...
3 / 2 / 2 / Caracteristicas de la extension ZIP...

Estoy en lo cierto ?
__________________
No te olvides de dar +1 a quien te echa un cable ;)
  #6 (permalink)  
Antiguo 12/02/2014, 13:08
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 361
Antigüedad: 10 años, 9 meses
Puntos: 55
Respuesta: Mejor forma de estructurar la información

Sí.
Asi lo veo yo.
  #7 (permalink)  
Antiguo 12/02/2014, 13:35
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años, 1 mes
Puntos: 468
Respuesta: Mejor forma de estructurar la información

Lo probaré a ver si este método me funciona bien!!. Gracias!!
__________________
No te olvides de dar +1 a quien te echa un cable ;)
  #8 (permalink)  
Antiguo 13/02/2014, 01:10
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años, 1 mes
Puntos: 468
Respuesta: Mejor forma de estructurar la información

Ahora lo que no me queda claro es que consulta tengo que hacer por ejemplo para que me muestre todos los datos de la extensión mp3 por ejemplo...

Mostrando.. Definición..Software para su manejo y lectura...Características...Historia,
__________________
No te olvides de dar +1 a quien te echa un cable ;)
  #9 (permalink)  
Antiguo 13/02/2014, 05:09
 
Fecha de Ingreso: diciembre-2012
Mensajes: 128
Antigüedad: 11 años, 5 meses
Puntos: 12
Respuesta: Mejor forma de estructurar la información

Seria la mejor forma de hacerlo pero luego a la hora de leer los datos vas a tener que ejecutar 3 consultas o lo que es peor una con algún tipo de join, yo para la poca cantidad de datos que son lo metería todo en una tabla y a la hora de acceder a cada uno o a todos los que tengan una misma extensión te sobra con una consulta.
Se que esto me va a tirar al cuello a los gurus pero con tan poca cantidad de datos no creo que importe mucho engordar un poco la base de datos a cambio de menos consultas.
__________________
Comparador facturas de luz
  #10 (permalink)  
Antiguo 13/02/2014, 08:14
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años, 1 mes
Puntos: 468
Respuesta: Mejor forma de estructurar la información

Ahora no se como realizarlo!!! Lo ideal sería que con una consulta mostrara todos los datos...
__________________
No te olvides de dar +1 a quien te echa un cable ;)
  #11 (permalink)  
Antiguo 13/02/2014, 10:09
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 8 meses
Puntos: 397
Respuesta: Mejor forma de estructurar la información

Cita:
Iniciado por phoneval Ver Mensaje
Se que esto me va a tirar al cuello a los gurus pero con tan poca cantidad de datos no creo que importe mucho engordar un poco la base de datos a cambio de menos consultas.
Pues si te van a tirar la soga al cuello porque estás recomendando malas prácticas, no importa si la base de datos es pequeña o no, es imprescindible normalizar una base de datos, por usabilidad, escabilidad y evitar la redundancia de datos. Lee esto

Cita:
Iniciado por rodrypaladin Ver Mensaje
Ahora no se como realizarlo!!! Lo ideal sería que con una consulta mostrara todos los datos...
Hola @rodrypaladin, en sí ¿Qué es lo que no eres capaz de hacer? en teoría con INNER JOIN puedes traer la información de varias tablas

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #12 (permalink)  
Antiguo 13/02/2014, 12:19
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: Mejor forma de estructurar la información

Perdón por meter mi cuchara, pero cuando hablamos de tablas de una sola columna y cuyo valor no será usado en más de una tabla, me parece innecesario normalizar hasta ese nivel, ya que la ganancia de espacio de almacenamiento puede no valer la pena ante la pérdida de tiempo de proceso, al menos en mis pruebas, para una tabla de 10,000 registros con las columnas

idusuario (int), zona(varchar)
me dio los siguientes tiempos de consulta consultando 10 veces:
select * from usuarios where 1
0.0004
0.0002
0.0002
0.0002
0.0002
0.0002
0.0002
0.0003
0.0002

mientras que para dos tablas , tabla usuarios de 10,000 registros y tabla zonas de 5 registros me dio lo siguiente:
SELECT idusuario, zona FROM usuarios JOIN zonas on zonas.id=usuarios.idzona WHERE 1
0.0009
0.0003
0.0003
0.0002
0.0004
0.0003
0.0003
0.0002
0.0003
  #13 (permalink)  
Antiguo 13/02/2014, 13:01
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años, 1 mes
Puntos: 468
Respuesta: Mejor forma de estructurar la información

Ahora ya no se como estructurar la información si como tengo las tablas ahora organizadas:

Tebla extensión:
id / Extension
1 / PDF
2 / ZIP
3 / MP3

Tabla particularidades:
id / Particularidad
1 / Definición
2 / Software para su lectura o manejo
3 / Características
4 / Historia

Tabla ExtensionParticularidad
id / id_Extension / id_particularidad / contenido
1 / 1 / 1 / La definicion de PDF....
2 / 3 / 4 / La historia de la extensión MP...
3 / 2 / 2 / Caracteristicas de la extension ZIP...

O hacerlo todo en una tabla como también me están comentando.

Por otro lado @jonni09lo soy novatillo en esto y como te imaginarás no me se todas las consultas que puedo realizar, buscaré ejemplos sobre INSERT JOIN como has dicho, y si con ello consigo traer informacion de varias tablas en una sola consulta me hará mucho más fácil todo.
__________________
No te olvides de dar +1 a quien te echa un cable ;)
  #14 (permalink)  
Antiguo 13/02/2014, 13:10
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 8 meses
Puntos: 397
Respuesta: Mejor forma de estructurar la información

Hola @rodrypaladin, con respecto a los JOIN, te recomiendo este artículo que es muy bueno ya que explica gráficamente como funcionan los distintos tipos de JOIN (algo bastante útil a la hora de tratar de entenderlos)

Con respecto al diseño de la base de datos, le decía a @ocp001a que si bien comparto la misma opinión, creo que tu base de datos podría extenderse de alguna manera, causando de que tener tres tablas no sea algo innecesario... (ese es el problema de la programación, siempre van a haber varias opciones de desarrollar un mismo problema y unas más óptimas que otras )

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #15 (permalink)  
Antiguo 13/02/2014, 13:43
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 361
Antigüedad: 10 años, 9 meses
Puntos: 55
Respuesta: Mejor forma de estructurar la información

Hola, la opción con las 3 tablas es la mejor práctica que conozco para tener mayor escalabilidad, ya que te genera una relacion muchos:muchos. La versatilidad de consultas es tan extensa que requerie tener conocimientos muy sólidos de sql.

Como comenta ocp001a, el uso de la misma depende del proyecto.

Otra forma que he usado en proyectos es una tabla DEFINICIONES.

Ejemplo aplicado al caso:

Id/TipoDefinicion/Definicion
1/Extension/PDF
2/Extension/MP3
3/Particularidad/Definición
4/Particularidad/Historia

Donde las posibilidades de TipoDefinicion deben estar preprogramadas, para el caso planteado, son solo 2; con un simple array basta.

No pierdes mucha escalabilidad y las consultas son bastante mas sencillas, requiriendo joins de solo 2 tablas, o incluso si copias los datos de tabla Definiciones en tabla de USO obtienes un resultado aceptable para datos que no requieren estricta normalización.

Saludos

Etiquetas: estructurar, forma, tabla
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 20:12.