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

Como diseñaríais esta base de datos?

Estas en el tema de Como diseñaríais esta base de datos? en el foro de Bases de Datos General en Foros del Web. Hola a todos! Tengo un problema intentando diseñar una base de datos y al final he decidido recurrir a este foro, a ver si alguien ...
  #1 (permalink)  
Antiguo 02/11/2004, 07:08
 
Fecha de Ingreso: octubre-2004
Ubicación: Cork (Irlanda)
Mensajes: 161
Antigüedad: 19 años, 6 meses
Puntos: 1
Como diseñaríais esta base de datos?

Hola a todos!

Tengo un problema intentando diseñar una base de datos y al final he decidido recurrir a este foro, a ver si alguien me puede echar una mano:

Se trata de una BD para una escuela deportiva.

El problema lo tengo a la hora de diseñar las tablas que deben guardar los datos de los niños, porque puede ser que no todos tengan DNI.

Si hago que el atributo DNI pueda ser nulo (para los que no lo tengan) pero que no se pueda repetir (para los que lo tengan), entonces no puedo tener más de un DNI nulo porque no los puedo repetir.

Si permito que se puedan repetir... eso no es lógico ya que es un número único.

La verdad es que ahora estoy muy mareado con este tema y no se si me entendereis los que lo leais.

Espero alguna ayudita... y si es necesario intentaré explicarme mejor
  #2 (permalink)  
Antiguo 02/11/2004, 08:17
Avatar de mesiasdiabolico  
Fecha de Ingreso: agosto-2004
Mensajes: 33
Antigüedad: 19 años, 8 meses
Puntos: 0
El nulo no se considera al momento de evitar duplicados.
__________________
Como mata el viento norte...
  #3 (permalink)  
Antiguo 02/11/2004, 09:04
 
Fecha de Ingreso: octubre-2004
Ubicación: Cork (Irlanda)
Mensajes: 161
Antigüedad: 19 años, 6 meses
Puntos: 1
Eso creia yo pero mira, tengo esto:

Código:
CREATE TABLE `persona` (
  `idpersona` int(10) unsigned NOT NULL auto_increment,
  `dni` varchar(10) default NULL,
  `nom` varchar(20) NOT NULL default '',
  `primer_cognom` varchar(20) NOT NULL default '',
  `segon_cognom` varchar(20) NOT NULL default '',
  PRIMARY KEY  (`idpersona`),
  UNIQUE KEY `NOM` (`nom`,`primer_cognom`,`segon_cognom`),
  UNIQUE KEY `DNI` (`dni`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;
Supongo que he definido mal el tipo de índice del DNI... me podrías indicar como hacer para que no mire si hay nulos repetidos?
  #4 (permalink)  
Antiguo 02/11/2004, 09:13
 
Fecha de Ingreso: enero-2004
Mensajes: 20
Antigüedad: 20 años, 3 meses
Puntos: 0
En motor estas trabajando?
Podrias no definir al DNI como clave unica y controlas mediante un trigger que no se repita el campo.
__________________
Prefiero las dudas del reflexivo a la tonta y orgullosa seguridad de los necios
  #5 (permalink)  
Antiguo 02/11/2004, 09:43
 
Fecha de Ingreso: octubre-2004
Ubicación: Cork (Irlanda)
Mensajes: 161
Antigüedad: 19 años, 6 meses
Puntos: 1
Motor es lo de MyISAM? Es que uso DBDesigner para diseñar las tablas y demás... y eso es lo que me pone él por defecto

Nunca he diseñado una (en papel y boli miles) y no se si voy por buen camino...

Me tendré que mirar algun manual a fondo porque los triggers si se que son pero no se implementarlos.
  #6 (permalink)  
Antiguo 02/11/2004, 12:26
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Hola masterjail
como ya menncionaron un poco mas arriba los nulos no se consideran.
He revisado la construcción de tu tabla y hay una cosa que he observado, y esto:
UNIQUE KEY `NOM` (`nom`,`primer_cognom`,`segon_cognom`),
¿por que marcas a todos ellos como único? "nom" me imagino que debe ser nombre y no pude ser único(a no ser que sea un caso muy especial), ya que en un tabla se pueden repetir muchas veces el mismo nombre. de igual forma con los campos "primer_cognom y segon_cognom".
Aqui te dejo un enlace donde habla de como normalizar tablas (la tecnica de como diseñar una tabla)
http://www.mysql-hispano.org/page.php?id=16&pag=1
Saludos!
  #7 (permalink)  
Antiguo 02/11/2004, 16:48
 
Fecha de Ingreso: octubre-2004
Ubicación: Cork (Irlanda)
Mensajes: 161
Antigüedad: 19 años, 6 meses
Puntos: 1
Lo he marcado como UNIQUE KEY porque no puede haber personas con el mismo nombre y apellidos... de todas formas he estado probando con UNIQUE KEY, INDEX y demás para ver que efecto producía...
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 21:06.