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

Duda sobre metodología de trabajo

Estas en el tema de Duda sobre metodología de trabajo en el foro de Bases de Datos General en Foros del Web. Hola Es una mala práctica mezclar los datos de acceso con la información del usuario en una misma tabla? Es decir, estaría bien si creara ...
  #1 (permalink)  
Antiguo 14/10/2010, 09:37
Avatar de atoleon  
Fecha de Ingreso: marzo-2007
Mensajes: 156
Antigüedad: 17 años, 1 mes
Puntos: 1
Duda sobre metodología de trabajo

Hola

Es una mala práctica mezclar los datos de acceso con la información del usuario en una misma tabla?
Es decir, estaría bien si creara una tabla usuario con estos campos: nombre_usuario, clave, nombre_real, apellidos, dni, email, etc...

Os mucho mejor crear dos tablas, una con los datos de acceso y otra con la información y luego enlazarlas?

Saludos, y gracias de antemano
  #2 (permalink)  
Antiguo 14/10/2010, 11:06
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Duda sobre metodología de trabajo

Buenos días atoleon:

No existe una regla como tal para decirte qué es lo que tienes que hacer o qué es mejor, depende de tu lógica de negocio. En la práctica he manejado ambos tipos de almacenamiento dependiendo de las necesidades propias del proyecto, voy a tratar de explicar los escenarios:

Hace algún tiempo desarrollamos un sistema en donde el área de mercadotecnia nos pidió una cuenta de acceso a la BD para poder generar estadísticas acerca de los contenidos a los que accesaban los usuarios. Ellos no necesitaban saber la identidad real de las personas pero querían tener la posibilidad de generar consultas "al vuelo", se decidió entonces tener la información en tablas separadas (info_personal, info_acceso) se creó una cuenta de usuario para mercadotecnia y se les dio permiso de lectura sólo sobre la tabla info_acceso y sobre la bitácora de accesos. De esta manera se mantuvo el anonimato de las personas y ellos pueden generar sus consultas dinámicas.

Si por el contrario fuera necesario saber también la identidad real de las personas entonces lo ideal sería manejar la información en una sola tabla.

Como te dije al inicio todo depende de tu lógica de negocio.

saludos
Leo.
  #3 (permalink)  
Antiguo 15/10/2010, 03:07
Avatar de atoleon  
Fecha de Ingreso: marzo-2007
Mensajes: 156
Antigüedad: 17 años, 1 mes
Puntos: 1
Respuesta: Duda sobre metodología de trabajo

Pues muchas gracias. Creo que en mi caso será mejor utilizar todo en la misma tabla pues no hay problemas de acceso por parte de los usuarios. En este caso será el sistema el que facilite siempre la información así que los usuarios no podrán acceder a la información que ellos quieran sino a la que el sistema les devuelva. De este modo me ahorro una tabla y algo de código.

Muchas gracias de nuevo. Saludos
  #4 (permalink)  
Antiguo 19/10/2010, 08:29
Avatar de atoleon  
Fecha de Ingreso: marzo-2007
Mensajes: 156
Antigüedad: 17 años, 1 mes
Puntos: 1
Respuesta: Duda sobre metodología de trabajo

Tengo una duda asociada a este tema.
Si tengo la información del usuario en dos tablas:
Tabla acceso: id_usuario, nombre, clave
Tabla info: id_info, *id_usuario, direccion, telefono
Digamos que el id_usuario se autincrement.
Si yo quiero meter toda la información en las dos tablas desde un mismo formulario, como podría introducir el campo id_usuario en la tabla info si es un dato que desconozco pues es el sistema quien lo asigna automáticamente?

La única manera que se me ocurre es insertando los datos en la tabla acceso, luego obtener el id_usuario y cuando lo tenga escribir los datos en la tabla info.
No me parece una manera óptima de hacer esto pues necesitas 3 consultas para hacer la operación. No se si habrá otra forma de hacerlo más ligero.

Saludos a todos y gracias
  #5 (permalink)  
Antiguo 21/10/2010, 08:07
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Duda sobre metodología de trabajo

Cita:
Iniciado por atoleon Ver Mensaje
Tengo una duda asociada a este tema.
Si tengo la información del usuario en dos tablas:
Tabla acceso: id_usuario, nombre, clave
Tabla info: id_info, *id_usuario, direccion, telefono
Digamos que el id_usuario se autincrement.
Si yo quiero meter toda la información en las dos tablas desde un mismo formulario, como podría introducir el campo id_usuario en la tabla info si es un dato que desconozco pues es el sistema quien lo asigna automáticamente?

La única manera que se me ocurre es insertando los datos en la tabla acceso, luego obtener el id_usuario y cuando lo tenga escribir los datos en la tabla info.
No me parece una manera óptima de hacer esto pues necesitas 3 consultas para hacer la operación. No se si habrá otra forma de hacerlo más ligero.

Saludos a todos y gracias
Bueno, pues ante eso no hay nada que hacer, bueno, tal vez
podrías hacer un procedimiento almacenado pero pues no se
que tanto funcione esto a la hora del insert, pero el caso es que
igual pienso serían 3 consultas

lo más optimo en este caso es usar las funciones propias
de la bd para devolver el registro más reciente insertado
en una tabla (dependiendo de cual motor de bd estas usando)
y luego pues usar ese id para la segunda tabla donde se
insertan los datos
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #6 (permalink)  
Antiguo 21/10/2010, 08:13
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, 5 meses
Puntos: 2658
Respuesta: Duda sobre metodología de trabajo

En definitiva, lo que te dice mortiprogramador es correcto: No hay otro camino sino insertar los datos respetando las dependencias.
Pero cuando analizo el ejemplo que das me parece que en este caso el problema es que estás atomizando excesivamente la información.
¿Realmente un username se va a corresponder con más de una persona? Porque eso es lo que estás modelando. Sino, carece de sentido separar datos entre dos tablas cuando la relación es 1:1. Solamente tendría algún sentido si los datos de la segunda tabla fuesen opcionales.
¿Es así?
__________________
¿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: trabajo
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 14:06.