Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

base de datos matriz forzada 5*7

Estas en el tema de base de datos matriz forzada 5*7 en el foro de Mysql en Foros del Web. Buenas Noches. Estoy creando un sistema para un negocio multinivel, llevo meses rompiendome la cabeza y no consigo hacer la normalizacion de la base de ...
  #1 (permalink)  
Antiguo 21/01/2017, 08:47
 
Fecha de Ingreso: agosto-2014
Ubicación: barranquilla
Mensajes: 93
Antigüedad: 9 años, 8 meses
Puntos: 0
base de datos matriz forzada 5*7

Buenas Noches.

Estoy creando un sistema para un negocio multinivel, llevo meses rompiendome la cabeza y no consigo hacer la normalizacion de la base de datos para que maneje la logica del sistema multinivel matriz forzada. por ejemplo

Situación 1

1. Se registra un usuario como cabeza de nivel (1),
2. El usuario cabeza de nivel sera el padre de todos los afiliados
3. en el nivel dos solo puede registrar 7 afiliados.
4. Cuando el nivel 2 llege a los 7, se registraran los nuevos usuarios en el nivel 3 hasta que se llene con 49
5. cuando el nivel 3 este lleno con 49 no recibirá mas usuario, estos nuevos usuarios pasaran al nivel 4 hasta llenar 343
6. cuando el nivel 4 se llener con 343 registros los nuevos pasaran al nievl 5 hasta completar 2041. esto quiere decir el los cinco niveles en una matriz tendra la suma de los registros de cada nivel.

Situacion 2.

Cuando se ingrese un nuevo afiliado de un afiliado del cualquier nivel el nuevo afiliado sera nivel1 de su red y tambien sera nivel 2 de su padre y asi hasta llenar su como se menciona en la situacion 1

Preguntas.
Como conocer los afiliados de mis afiliados en cada nive (1, 2, 3, 4, 5)

He tratado de todas las formas y no recuentro la solución algana orientación por favor.
  #2 (permalink)  
Antiguo 21/01/2017, 20:23
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: base de datos matriz forzada 5*7

Cita:
Como conocer los afiliados de mis afiliados en cada nive (1, 2, 3, 4, 5)
En principio, el nivel de cada uno de ellos dependerá del nivel anterior, por lo que cada registro de cada usuario deber'a forzosamente tener una FK nulable que apunte a su padre.
En ese contexto el nivel 1 es el del usuario que posea la FK en null, ya que en ese caso carece de padre.
Dado que hasta ahora MySQL carece de queries iterativas, las única forma de resolver tu problema es o bien agregar un ID de nivel, o realizar consultas secuenciales de validación que permitan obtener el nivel.
En cuanto al diseño de la tabla, es simplemente una tabla de usuarios con una FK nulable que apunte a la propia tabla... Es un caso de manual, al menos como yo lo veo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 22/01/2017, 12:13
 
Fecha de Ingreso: agosto-2014
Ubicación: barranquilla
Mensajes: 93
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: base de datos matriz forzada 5*7

Gracias por tu respuesta gnzsoloyo,
He seguido tu consejo y realice la tabla y me ha funcionado bien, tengo un incoveniente para limitar el registro de usuarios de la siguiente forma
Nivel 2: 7
Nivel 3:49
Nivel 4: 434
Nivel 5: 2041
Tienes algun ejemplo para iniciar
  #4 (permalink)  
Antiguo 22/01/2017, 12:40
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: base de datos matriz forzada 5*7

Dado que no existen constraint CHECK en MySQL, como los hay en otros DBMS, las únicas dos forma para emular eso son: O bien generas una validación antes de hacer la inserción (recomendable), y sólo insertas si cumple la restricción de la regla de negocio, o bien haces lo mismo por un trigger before insert donde dispares un error personalizado que cancele el insert.
No hay muchos otros caminos, porque por definicion de tabla, una base de datos no puede restringir la cantidad de registros a insertar en la misma.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: matriz, registro
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 04:40.