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

consejo para estructurar correctamente mi base de datos

Estas en el tema de consejo para estructurar correctamente mi base de datos en el foro de Mysql en Foros del Web. Hola forer@s primero que nada les deseo un excelente 2014!! y que esta comunidad siga creciendo y sigamos apoyandonos como hasta ahora!! Bueno necesito de ...
  #1 (permalink)  
Antiguo 06/01/2014, 12:02
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 13 años, 11 meses
Puntos: 23
consejo para estructurar correctamente mi base de datos

Hola forer@s primero que nada les deseo un excelente 2014!! y que esta comunidad siga creciendo y sigamos apoyandonos como hasta ahora!!

Bueno necesito de su experiencia, pues me estoy rompiendo la cabeza y no llego a nada, ya llevo pensando esto desde el año pasado jejeje

Ayudenme a aterrizar lo siguiente para poder crear lo mejor posible la BD

-----

Se supone que tenemos areas, las areas tienen procesos, procesos tienen subprocesos, los subprocesos tienen subsubprocesos.

Aca el primer tope, un proceso se divide en subprocesos que asu vez se dividen en mas subprocesos y esto asu vez se dividen y asi hasta ser necesario.

como evitar llenarme de tablas: procesos, subprocesos, subsubprocesos ... ect
y hacer algo como mas independiente o recursivo?



Luego entonces tenemos algo asi:

area1
-------procesos
-----------------subprocesos
-------------------------------subsubprocesos
------------------------------------------------y los niveles que sean necesarios

area2
-------procesos
-----------------subprocesos
-------------------------------subsubprocesos
------------------------------------------------y los niveles que sean necesarios

area N
-------procesos
-----------------subprocesos
-------------------------------subsubprocesos
------------------------------------------------y los niveles que sean necesarios

Ahora tenemos que por cada proceso hay actividades y estas estan compuestas de tareas a cumplir.

Bien pues resulta que las actividades se pueden llevar a cabo a nivel de subsubproceso y/o subproceso y/o proceso

y para cada area puede variar hasta a que nivel llega la actividad, por ejemplo:

area1
-------procesos
-----------------subprocesos (actividades->tareas)
-------------------------------subsubprocesos
------------------------------------------------y los niveles que sean necesarios

area2
-------procesos (actividades->tareas)
-----------------subprocesos (actividades->tareas)
-------------------------------subsubprocesos
------------------------------------------------y los niveles que sean necesarios

area N
-------procesos (actividades->tareas)
-----------------subprocesos (actividades->tareas)
-------------------------------subsubprocesos (actividades->tareas)
------------------------------------------------y los niveles que sean necesarios

Segunda duda, que deberia agregar a la tabla de tareas o la de actividades (las tareas corresponden a una actividad) para controlar por area si la actividad se aplicara a nivel subsubproceso, subproceso o proceso?

Por ejemplo:

actividades
-----------------
id_actividad
id_proceso
id_subproceso
id_subsubproceso
descripcion_actividad

Si hago algo como la tabla anterior si llego a tener mas niveles de proceso tendria que agregar campos de id por cada subproceso y eso no se me hace tan adecuado.

Ahora viene lo bueno, cada mes se van a evaluar las areas, entonces debo calificar a nivel tarea cada actividad, por ejemplo:

actividad 1 vale 100 - resultado = 71.66
--------- tarea 1 vale 100 - calificacion = 80
--------- tarea 2 vale 100 - calificacion = 60
--------- tarea 3 vale 100 - calificacion = 75

Tengo una tabla de calificaciones en la que replicare por mes el id de todas las actividades por area y procesos y guardare la calificacion por mes y año, esto creo que lo tengo mas o menos bajo control.

El rollo es que para llegar a la calificacion de las areas, tengo que pasar por cada proceso, pero algunos procesos las actividades son a nivel subproceso y subsubproceso y otros solo a nivel subproceso o hasta solo nivel del mismo proceso.

Como hacer igualdades para calificar desde el ultimo nivel a los que si les corresponden actividades y que no les afecten los que no les corresponden actividades, para al final de cada nivel de proceso obtener un 100 de calificacion y al sacar el promedio de cada nivel y que vaya cuadrando el resultado hasta llegar al nivel area.



Espero no haberlos hecho bolas, y disculpen tanto texto de verdad trate de explicarlo lo mas sencillo y resumido posible

les agradecere mucho su consejo.
  #2 (permalink)  
Antiguo 07/01/2014, 13:50
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 13 años, 11 meses
Puntos: 23
Respuesta: consejo para estructurar correctamente mi base de datos

hola, quiero mostrarles como voy y a ver si me pueden ayudar:

Sobre lo de los proceso, subprocesos, subsubprocesos ect creo tener la solucion, cree la siguiente tabla:

procesos
----------
id_proceso
proceso
clave_proceso
clave_dependencia
nivel

veamos un ejemplo sencillo:

Código:
id_proceso	proceso		clave_proceso	clave_dependencia	nivel
1		adquisicion		100		NULL		0
2		produccion		200		NULL		0
3		ventas		        300		NULL		0
4		compras		        110		100		1
5		mercadotecnia		310		300		1
tener todos los procesos en la misma tabla, especificando si son hijos de otro proceso y ademas su nivel.

Y con esto lograr hacer una consulta recursiva para que me muestre el arbol de dependencias, pero leyendo sobre este tema e visto que en mysql no se soportan las querys recursivas entonces creo que tengo que hacerlo por programacion, o con una superconsulta con subconsultas y/o uniones, aun no lo he intentado porque temo que esto arruine un poco o un mucho el performans de la base y por lo tanto del sistema, al final lo que deberia resultar es algo asi:

adquisicion
- compras
produccion
ventas
- mercadotecnia

que opinan?
  #3 (permalink)  
Antiguo 09/01/2014, 06:32
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: consejo para estructurar correctamente mi base de datos

Sobre consultas jerárquicas, puedes mirar aquí:
http://mikehillyer.com/articles/mana...data-in-mysql/
  #4 (permalink)  
Antiguo 09/01/2014, 18:20
Avatar de ministroy  
Fecha de Ingreso: febrero-2002
Ubicación: Oaxaca, Oaxaca
Mensajes: 93
Antigüedad: 22 años, 2 meses
Puntos: 0
Respuesta: consejo para estructurar correctamente mi base de datos

Si la opción puede ser que crees campos con categorias donde identifiques si es un proceso, subproceso, etc; de igual forma con las actividades.
Saludos
__________________
Evoluciona en Internet -> E-WebStudio.Net

Etiquetas: campo, consejo, correctamente, estructurar, 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 12:00.