¿Cuáles son las diferencias entre las asociaciones uno a muchos, muchos a uno y muchos a muchos al configurar relaciones de mapeo en Spring? ¿Se pueden reemplazar entre sí?
1gt; Su pregunta debería ser sobre el diseño de bases de datos, al menos el concepto de marco de capa de persistencia en el marco de Java, que parece no tener nada que ver con Spring.
2gt; El software informático está diseñado para resolver problemas en un campo determinado. Por lo tanto, el entorno de uso y las condiciones de uso de los problemas de dominio afectan el diseño del software. Por ejemplo, el objeto de un libro tendrá diferentes relaciones con otras cosas o cosas en diferentes situaciones.
(a) "Tiene un libro" Pensamiento de programación JAVA ", entonces la relación debe ser: uno a uno. Pero debes tener otros libros lt;lt;Matemáticas Avanzadasgt;gt;lt;lt;Sistemas Operativosgt;gt;etc., por lo que la relación debe ser: uno a muchos. Nota: Es importante considerar el alcance del problema, o el contexto en el que estamos hablando del problema, y el contexto del que estamos hablando es "el hombre y su libro".
(b) Si hablamos de "personas y libros de la biblioteca", entonces hay un problema con uno a muchos. Como una persona puede pedir prestados muchos libros, un libro se puede prestar a muchas personas aunque no sea al mismo tiempo. Por lo tanto, el diseño de la tabla de la base de datos debe ser de muchos a muchos. Supongamos que llamamos a esta tabla de base de datos "T_Student Borrowing Record", pero usar solo esta tabla no es suficiente, ¿por qué? Porque debe haber al menos dos tablas "T_Books" y "T_Students" para almacenar información básica.
Ahora pensemos en ello nuevamente Para registrar los registros de los estudiantes que tomaron prestados libros, diseñamos tres tablas: "T_Students", "T_Books", "T_Students Borrowing Records" ".
Si lo piensas bien, estas tres tablas son todas necesarias, ni más ni menos. La implementación de la tabla "T_Student_Borrowing_Records" tiene un término llamado tabla de entidad/asociación descompuesta (llamada clase de asociación en UML).
Debido a que el sistema de base de datos relacional no puede guardar enlaces de muchos a muchos, muchos a muchos deben convertirse en 1 a muchos. Se puede ver la relación entre "T_Student" y "T_Student". Registro de préstamos" es uno a muchos.
Dado que un estudiante puede pedir prestado un libro varias veces, también existe una relación de uno a muchos entre "T_Books" y "T_StudentBookLoanRecords". Porque un libro puede ser tomado prestado por muchas personas en distintos momentos.
De hecho, "uno a muchos" y "muchos a uno" son sólo dos formas diferentes de hablar de las relaciones. Por ejemplo, digamos que tienes 100 libros. Desde esta perspectiva, ¿cuál es la diferencia entre "tienes muchos libros" y "estos libros son tuyos"? Es solo que "objeto principal" y "del objeto" son diferentes en una oración, pero la relación entre personas y libros es la misma, es decir, las dos tablas A y B en la base de datos tienen uno a muchos. relación, y B y A tienen una relación de muchos a uno y son idénticos.