Ver Mensaje Individual
  #9 (permalink)  
Antiguo 26/06/2014, 12:55
cdiazr
(Desactivado)
 
Fecha de Ingreso: junio-2013
Ubicación: Santo Domingo de Guzmán
Mensajes: 35
Antigüedad: 11 años, 5 meses
Puntos: 1
Respuesta: matriz 3x5 niveles forzada

Cita:
Iniciado por dashtrash Ver Mensaje
Si tienes n niveles, con un maximo de n queries a la base de datos, conoces la posición.No es necesario un sistema de bucles.
Es más, si en cada usuario guardas el número de personas que ya tiene debajo de ella, con 1 sola query es suficiente.
Sí, no te lo discuto y además yo soy partidario de utilizar la menor cantidad de código y si puedo reducir la cantidad de bucles para realizar una búsqueda pues mejor que mejor.

De todas formas, mi 1ª respuesta a este post la sigo manteniendo para encontrar un sistema que sea sencillo, fácil de programar y funcional utilizando papel lapiz o excel u otro programa que te permita realizar la tarea que se desea manualmente para despues llevarlo a código.

Lo primero es tener claro lo que se quiere hacer, una matriz forzada ya sea la que sea pero forzada, eso consiste en una matriz general que se irá agrandando a medida que los miembros se vayan incorporando y cada miembro genera una matriz forzada FINITA (ya sea 2x3, 3x5, 5x6, etc) mientras que la general es INFINITA (ya que se va agrandando como dije).

Teniendo en cuenta eso, entonces cada posición tiene una ID y que solo faltará asignar un usuario a esa ID de posición.

Entonces como asignar una ID a cada posición? Yo cojí el excel e hice la siguiente estructura...

[URL="https://mega.co.nz/#!bw4wGYAT!EKWQMWSvrHsHats-POeS0NWODf3zXXWTI_hqfA4eupA"]Excel Matriz[/URL]

De esta manera ví mucho más claro como diseñar la tabla.

Código HTML:
[B]Patrocinador      Usuario   id_usuario        id_matriz[/B]
     negocio  	    User1	    1	                   1		
      User1	            User2	    2	                   11
      User1	            User3	    3	                   12
      User2	            User4	    4	                   111
      User3	            User5	    5	                   121
      User2	            User6	    6	                   112
      User1	            User7	    7	                   13
      User7	            User8	    8	                   131
Entonces, con esa estructura de tabla ya sería tan sencillo como buscar a partir de la matriz (usuario) que ha referido el primer hueco vacío para colocar al nuevo miembro.

Por ejemplo:

si el User7 ha sido el último en incorporar un nuevo miembro (User8), pues con solo buscar, a partir de la matriz nº 13, si la matriz nº 131 existe o no y dependiendo el resultado pasar a la siguiente matriz o colocarlo en el 131 que es el caso en el ejemplo de la tabla que he hecho.

Comparto la estructura gráfica de matrizes FINITAS dentro de la matriz general INFINITA para que se mostrar de esta manera cómo el sistema tendría que recorrer la matriz general.

[URL="https://mega.co.nz/#!nkIHhQgI!jxP5tE08Gjwcs9P_oZYlR5lbin322eIKGrAb1O-Ztj0"]Imagen Matriz General[/URL]