Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: 3n31ch en 10 Agosto 2015, 08:22 am



Título: Separar table user con tabla person
Publicado por: 3n31ch en 10 Agosto 2015, 08:22 am
Hola, espero que esten bien, me gustaria saber su opinion sobre mi problematica:

Tengo una base de datos pequeñas la cual maneja los datos de login de un sitio web. En ella se encuentra (entre otras tablas) la tabla user, la cual contiene una enorme cantidad de atributos.

user(
id,
firstname,
lastname,
sex,
birthday,
username,
password,
email
)


ahora... no seria mejor separar dicha tabla en dos:
person(
id,
firstname,
lastname,
sex,
birthday
)
user(
id,
username,
password,
email
)


creo que esto pega mas con el concepto de normalizacion, en concreto creo que el punto 2.

En este caso, la clave foranea ha de estar tanto en person como en user (teniendo en cuenta que una persona solo puede tener un usuario) o solo en user?

Es bueno separar las dos tablas o no?


Título: Re: Separar table user con tabla person
Publicado por: engel lex en 10 Agosto 2015, 08:29 am
no es necesario realmente, ya que es un sistema uno a uno... para todo user tiene que haber un y solo un person... no puede haber más ni menos de uno... entonces la separación carece de valor...

en el único caso que tiene valor es que realmente quieras hacer una separación entre los "datos humanos" y los datos de la cuenta, en ese caso tienes que hacer las respectivas foraneas, y tener cuidado con los detalles


Título: Re: Separar table user con tabla person
Publicado por: 3n31ch en 10 Agosto 2015, 21:20 pm
Busque bastante info en internet. Algunos apoya la idea de separar estas dos tablas, para mantener un orden en la base de datos y evitar que las tablas tengan muchos campos, a su vez evitar (en caso del MVC) tener modelos muy grandes.

Sin embargo unos difieren de esta idea diciendo que si la relacion es siempre 1 a 1 no se debe separar por ningun motivo dicha tabla.

Debido a la diferencias de idias, pensé e crear una sola tabla y posterior a esto crear vistas.

Pero despues de pensarlo mejor, para mis propósitos, sera mejor separar la tabla, debido a que quizás a futuro necesite trabajar con pesonas que no tengan usuarios.

Muchas gracias por responder :3