Díganme si esto es Redundante.Creo que tengo razón

Pipo
06 de Mayo del 2006
Amigos, tengo la siguiente duda:

Tengo una base de datos sql server en la cual relaciono la tabla Pais con Ciudad(Una relacion Uno a Muchos), o sea donde un pais puede tener varias ciudades, pero una ciudad pertenece a un solo país. En este caso ciudad tiene entre sus atributos el id del pais al que pertenece. Tebngo otra tabla Persona que se relaciona con Ciudad. la Tabla persona tiene el id de la ciudad en que vive, pero no el pais. Yo pienso que estabien de esta forma.Si quisiera saber el pais de la persona facilmente lo busco por el id del pais que tiene la tabla ciudad.El problema esta en que he visto ota base de datos, supuestamente creada, por personas que saben bastante de BD. y ellos le ponen a la tabla persona ademas del id de la ciudad, tambien el id del pais. Entonces pregunto si: Está bien eso?. yo pienso que hay redundancia ya que por la ciudad yo puedo llegar al pais donde vive la persona. Pero ellos me dicen que lo hacen porque eso les evita que la busqueda de las personas por paises sea mas lenta, al no tener que hacer tantos JOIN. Lo que quiero que me aclaren es que cosa es mejor, si como lo tengo yo o como lo tiene ellos.

Saludos

Pepe
06 de Mayo del 2006
Está muy claro. Tu base de datos está más normalizada que la otra, la otra tendrá mejor rendimiento, pero desde el punto de vista de correción de la BD.D. esta más bien la tuya (repasa las formas normales de una base de datos).

CSDK
06 de Mayo del 2006
BUENO LAS DOS RESPUESTAS SON BUENAS PERO EN REALIDAD NO ES LO MISMO EJECUETAR JOINS A UNA SIMPLE CONSULTA CUANDO TU DB TIENE DEMACIADOS REGISTROS