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} |
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