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

Renumerar Tabla y Relaciones

Estas en el tema de Renumerar Tabla y Relaciones en el foro de Mysql en Foros del Web. Muy buenas a todos, tengo algunas dudas respecto a la hora de plantear y diseñar mi base de datos para mi aplicación VB.net, ya que ...
  #1 (permalink)  
Antiguo 27/01/2015, 13:25
Avatar de cedido  
Fecha de Ingreso: febrero-2011
Ubicación: Madrid
Mensajes: 8
Antigüedad: 13 años, 8 meses
Puntos: 0
Renumerar Tabla y Relaciones

Muy buenas a todos, tengo algunas dudas respecto a la hora de plantear y diseñar mi base de datos para mi aplicación VB.net, ya que no estoy muy puesto en este campo.
El problema es el siguiente:
Tengo una base de datos de socios de un club donde hay que registrar, entre otros datos, la rigurosa antigüedad conforme se van dando de alta. Pero si tengo 600 socios y el 245 se da de baja, tendría que renumerar el número de socio desde ahí hasta el último y no sé cómo plantearlo.
Dentro de ese club hay 4 grupos diferentes a los cuales un socio puede pertenecer a uno, dos o todos los grupos y que se sepa a qué grupo pertenecen cuando se abra la ficha del socio.
Todos los años hay una serie de actividades donde se tiene que almacenar las mismas y saber qué actividad ha realizado cada año.
Los socios tienen la opción de pagar en el centro o mediante trasferencia bancaria, con forma de pago anual o semestral. Así cuando se consulte al cliente se puedan detallar todos los pagos que ha ido realizando.
Os rogaría me dierais alguna idea de cómo relacionar las tablas y cuántas tablas serían necesarias para solventar lo antes expuesto.
Un millón de gracias de antemano
  #2 (permalink)  
Antiguo 27/01/2015, 13:54
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: Renumerar Tabla y Relaciones

Hola cedido:

El tema de renumerar un campo autoincremental lo hemos tratado infinidad de veces en este foro. checa esta liga

Renumerar un campo auto_increment

Ahí te dan las razones de por qué lo que pides es completamente inutil y no es conveniente...

No sé en que te afecta el tener brincos en la secuencia, y si realmente quieres determinar la antigüedad de un socio, pues lo correcto es que agregues simplemente un campo para almacenar la fecha de alta de ese socio y listo... cualquier otra cosa que se te ocurra está de más.

Hay muchas formas de matar una mosca, pero utilizar una pistola es demasiado. Ojo con eso.

Saludos
Leo
  #3 (permalink)  
Antiguo 27/01/2015, 16:31
Avatar de cedido  
Fecha de Ingreso: febrero-2011
Ubicación: Madrid
Mensajes: 8
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Renumerar Tabla y Relaciones

Muy buenas leonardo_josue, gracias por tu respuesta y por mandarme el link con los FAQ,s, lamento repetir pregunta pero el campo no es "Autoincrement" ya que la tabla ya tiene una clave principal, pero es importante seguir una numeración para controlar la antiguedad ( pese a tener un campo fecha ) pero ese número es importante.

No obstante, gracias nuevamente por tu tiempo y si me surgen más dudas no dudaré en preguntar.
  #4 (permalink)  
Antiguo 27/01/2015, 16:34
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Renumerar Tabla y Relaciones

Si no es auto_increment, tampoco tiene sentido tenerlo numerado en forma secuencial.
Y si la idea es una secuenciación temporal, tampoco es un método práctico; en ese caso es mucho más recomendable usar un campo DATETIME con la fecha de alta del registro.

Explica un poco mejor qué tipo de información guarda esa tabla, y cómo manejas la secuencialidad de ese campo; es decir, ¿cómo generas esa numeración y cómo te aseguras de que es secuencial?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 27/01/2015, 17:08
Avatar de cedido  
Fecha de Ingreso: febrero-2011
Ubicación: Madrid
Mensajes: 8
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Renumerar Tabla y Relaciones

Hola de nuevo, la clave principal de la tabla es DNI
-----------------------
-- SOCIOS --
-----------------------
DNI (clave)
NumSocio
Nombre
Apellido1
Apellido2
...
...
...
FechaAlta
.....

Lo que hago es crear una función en VB. net

Código SQL:
Ver original
  1. SELECT MAX(NumSocio) AS MAXIMO FROM SOCIOS
Cita:
Editado: Código de programación no permitido en foros de Bases de Datos.
Leer las normas del foro, por favor.

Con esa función si el último guardado es 3, en la caja de texto correspondiente a Número de Socio de añade 4, con lo cual, ese campo no se toca a la hora de añadir socio, ya que tengo ese TextBox con la propiedad Enable a False. Así, sólo me preocupo de introducir el resto de datos y guardarlos en la tabla

Última edición por gnzsoloyo; 27/01/2015 a las 17:31
  #6 (permalink)  
Antiguo 27/01/2015, 17:35
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Renumerar Tabla y Relaciones

Bueno, empecemos por un detalle: Lee las reglas para postear en los foros de Base de datos...

En cuanto al problema en si, hay muchas soluciones posibles, no una única solución.

El diseño de la tabla en cuanto a PK, es basicamente correcto, porque estás usando como tal un identificador universal único. El problema lo tienes por el lado de que tu sistema requiere de la existencia de un identificador numérico no asociado con el DNI, sino interno al sistema.
Las dos soluciones posibles son:
1) Separar el conjunto en dos datos: el de RegistroSocio, cuya PK bien puede ser el incremental de NroSocio, y donde se relacione al socio con el DNI, y la tabla SocioDatos, con el resto de los datos personales.
2) Definir NroSocio como PK autoincremental y poner el DNI como UNIQUE.

En realidad, la primera opción es la correcta, porque permite manejar ambos conceptos paralelamente sin generar conflictos, pero es algo que debes decidir en base al requerimiento del sistema.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 28/01/2015, 16:24
Avatar de cedido  
Fecha de Ingreso: febrero-2011
Ubicación: Madrid
Mensajes: 8
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Renumerar Tabla y Relaciones

Muchas gracias por responder!!!. Voy a hacer pruebas con las alternativas que me has dado.
Si tengo algún inconveniente ya lo comento...
  #8 (permalink)  
Antiguo 29/01/2015, 02:57
 
Fecha de Ingreso: enero-2008
Ubicación: Málaga - España
Mensajes: 346
Antigüedad: 16 años, 10 meses
Puntos: 13
Respuesta: Renumerar Tabla y Relaciones

No entiendo como si me doy de alta en un club, y soy el socio: 1355, mañana por baja de algun miembro paso a ser el socio numero 1354. Ahí hay algo que no va bien.

Otra cosa, es que por necesidades varias, necesitemos conocer el numero de socios en activo del club. Pero eso NO tiene nada que ver con el nº de socio.

Para este caso tenemos otras "herramientas" en programacion a la hora de mostrar los datos.

Etiquetas: campo, relaciones, 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 09:27.