Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   Consejo para el modelado de una BD (https://www.clubdelphi.com/foros/showthread.php?t=75980)

b3nshi 01-10-2011 09:48:19

Consejo para el modelado de una BD
 
Buenas noches,

Estaba haciendo el modelo relacion de una BD y llego a una parte donde tengo una duda de cual es la mejor manera de hacerlo...

Veamos de que estoy hablando...

Tengo 3 tablas: USUARIOS, POSTS, EMPRESAS, LUGARES

Estas cuatro tablas tienen atributos diferentes, pero todas tienen en comun que pueden pertenecer a una o varias categorias. Por lo que tengo una tabla que se llama CATEGORIAS.

Mi pregunta es, dado que entre cada una de las tablas voy a tener una cardinalidad N-N, voy a tener q hacer una tabla nueva para crear la relacion entre cada tabla quedandome asi el modelo:

***************************--------------RELACIONUSUARIOSCATEGORIAS------------USUARIOS
**************************|
***************************--------------RELACIONPOSTSCATEGORIAS---------------POSTS
CATEGORIAS<-----|
***************************--------------RELACIONEMPRESASCATEGORIAS------------EMPRESAS
**************************|
***************************--------------RELACIONLUGARESCATEGORIAS-------------LUGARES

No se si se entiende mas o menos el modelo como lo planteo... ahora lo que queria saber es si a las 4 tablas RELACIONxxxxxCATEGORIAS, puedo simplificarlas en una sola... y en lugar de colocar en cada una un atributo que se llame: idusuario o idposts, o idempresas, o idlugares, colocar un atributo q se llame id q sea de un tipo varchar (por ejemplo) y colocar una combinacion q sea: nombredetabla+id en el contenido...

De esa manera simplifico el modelo a una sola tabla, y queda mas prolijo.

Lo que no se es si esto violaria algun principio en el modelado de BD, o si existe alguna mejor manera de hacerlo. Si no les queda claro puedo subir un modelo de workbench exportado a un PNG para explicar mejor a lo que me refiero.

Desde ya muchas gracias a todos por su ayuda!

{Saludos}

Neftali [Germán.Estévez] 03-10-2011 11:51:43

Personalmente yo no mezclaría tablas.
Ya no sólo porque se aleje de la "Normalización de Bases de Datos", sino porque estas cosas a la larga afectan al rendimiento, a las consultas, a los filtros,... ¡Vamos! que lo que al principio parece que lo simplifica todo, al final acaba complicándolo.

El "mezclar" datos en la tabla, te va a provocar en general que tengas que añadir más código en todos sitios, para hacer esas distinciones, eso te genera más propensión a errores.

Mi opinión (desde fuera, sin conocer más datos) es no hacerlo, pero tampoco conozco 100% el tema...


La franja horaria es GMT +2. Ahora son las 13:02:57.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi