Hola, voy hacer una aplicación para fin de proyecto donde gestionaré un taller mecánico que tendrá una página web y una aplicación java de escritorio que gestionará varias tablas y que el acceso estará controlado por roles que tendrán varios permisos, la cuestión es la siguiente los trabajos pueden estar realizados por varios trabajadores y tendrán varias piezas, por tanto, me convendría una relación muchos a muchos entre las tablas trabajador, trabajo y trabajo, piezas o si me vendría mejor realizar campos multivaluados. La administración de la aplicación la haré con hibernate.
entre Desarrolladores
Recibe ayuda de expertos
Registrate y pregunta
Es gratis y fácil
Recibe respuestas
Respuestas, votos y comentarios
Vota y selecciona respuestas
Recibe puntos, vota y da la solución
Pregunta
1 Respuesta
Hola @manuel26892,
Siempre, pero siempre, conviene tener las tablas al menos en 3ra Forma Normal.
Esto implica que al normalizar te aparecerán muchas tablas, pero te garantiza luego poder hacer cualquier operación sobre el conjunto de datos. Este abordaje es independiente de la tecnología usada para almacenar o acceder a los datos.
Tu descripción del problema es breve, pero así, a ojo, te harán falta tablas para:
Roles
Trabajadores
Piezas
Trabajos
TrabajosTrabajadores
TrabajosPiezas
Según la especificación también puedne hacer falta Clientes y Vehículos...
Luego, si te piden hacerlo en Java y usar Hibernate, deberías platear un Modelo en Objetos que resuelva el problema, en dónde posiblemente el Trabajo sea un Objeto que tenga una colección de Trabajadores y otra colección de Piezas...
En ese escenario usarás Hibernate, que es un Mapeador Objeto/Relacional, para darle las reglas de cómo se acceden a los datos sin sacribificar la estrubtura del Modelo.
Noo sé el enfoque de la materia, pero si fuera de Programación Orientada a Objetos y me dieras un software que usa Hibernate para implementar un DAO, yo no podría aprobarte, porque estarías modelando un esquema de ddatos "con olor a Objetos" en vez de aplicar los conceptos de la POO... es más complicado hacerlo bien, pero se aprende muchísimo!
Por favor, accede o regístrate para añadir un comentario.
Por favor, accede o regístrate para responder a esta pregunta.
En el blog
-
- 689576
- 1
- Jul 5, 2015
Sin Respuesta
-
- 80
- 0
- Oct 18
-
- 166
- 0
- Jul 9
-
- 535
- 1
- Mar 19
-
- 408
- 2
- Feb 26
-
- 4725
- 0
- Nov 7, 2023
-
- 479
- 0
- Sep 19, 2023
-
- 464
- 0
- Ago 21, 2023
-
- 637
- 0
- May 14, 2023
- ver todas
Preguntas relacionadas
- En qué lenguaje debería desarrollar mi nueva aplicación que requiere base de datos?
- Menu en java desde base de datos
- Error en JAVA, Servlet con hibernate
- Como hago que mi aplicación movil de Android se conecte de una base de datos interna, con una externa.
- Como realizo dos gestores de autenticacion y dos login al tiempo en spring-security?
Actividad Reciente
alyvrs preguntó Oct 19
Ayuda , necesito mostrar datos creados solo por el…ManHol preguntó Jul 9
pasar un archivo de excel a csv en pythonArtEze respondió Abr 24
Alguien sabe, no me ignorenArtEze seleccionó una respuesta Abr 24
Bajar extensión de Chrome sin actualizar el navega…ArtEze respondió Abr 24
Bajar extensión de Chrome sin actualizar el navega…ArtEze preguntó Abr 24
Bajar extensión de Chrome sin actualizar el navega…ArtEze respondió Abr 24
No me deja instalar OracleArtEze respondió Abr 24
Formulario que guarde los datos de un jsonArtEze comentó Abr 24
Script /boot/ scrapingSantiago2610 comentó Mar 23
Acualizar ChoiceField en django
Ultimas Preguntas
Preguntas relacionadas
- En qué lenguaje debería desarrollar mi nueva aplicación que requiere base de datos?
- Menu en java desde base de datos
- Error en JAVA, Servlet con hibernate
- Como hago que mi aplicación movil de Android se conecte de una base de datos interna, con una externa.
- Como realizo dos gestores de autenticacion y dos login al tiempo en spring-security?
Usuarios Top
- Leonardo-Tadei
- 227320 Puntos
- Peter
- 150480 Puntos
- white
- 75880 Puntos
- carlossevi
- 63580 Puntos
- magarzon
- 30650 Puntos
- pregunton
- 20400 Puntos