¿Cuándo necesitamos usar una relación de 1 a 1 en el diseño de la base de datos? En mi opinión, si dos tablas están en una relación de 1 a 1, se pueden combinar en una tabla. ¿Es esto cierto?¿Cuándo necesitamos usar una relación de 1 a 1 en el diseño de la base de datos?
Respuesta
partición vertical para tablas de gran tamaño para reducir la E/S y la memoria caché requisitos - columnas separadas que se consultan a menudo vs raramente.
Añadiendo una columna a un sistema de producción cuando el
alter table
es "demasiado caro".Super-type/subtype patrón.
Partición vertical para beneficiarse de la eliminación de la tabla (unión) - Proporcionar el optimizador es compatible (una vez más para reducir la E/S y la memoria caché).
Anchor modeling - similar a 4, pero hasta 6NF.
sí en general.
Una excepción puede ser si desea asignar privilegios de manera diferente a un subconjunto de columnas.
también consideran que esto es cierto solo cuando se requieren ambos lados.
Una razón sería poner los datos a los que se accede con frecuencia en una tabla y los datos a los que se accede con poca frecuencia en otra tabla. Sería más rápido y ahorraría algo de memoria.
Pero tendría que tener mi brazo torcido antes de hacerlo.
En ocasiones es útil para bloqueos de mesa. Cuando agrega una columna a una base de datos, toda la tabla se bloquea hasta que se reescribe completamente. Esto tiene poco o ningún impacto cuando su base de datos tiene 100k filas. Pero si usted ha 100M filas o hileras 1B, es una historia completamente diferente ...
Es también útil para evitar filas muertas que toman demasiado espacio. Si está utilizando MVCC y algunas de sus columnas se sobreescriben con regularidad, de vez en cuando tiene sentido para colocarlos en una tabla separada. Podría decirse, auto-aspiradora finalmente entra en acción, pero en aras de la preservación de trabajo en el disco duro, vacío mejor algunos campos int en una tabla separada que todo un montón de filas enteras llenas de texto, varchar (n) y que saben qué más.
Una última razón sería el abuso de select *
en ORM. Si está almacenando imágenes o publicaciones de blogs/artículos, por ejemplo, puede tener sentido almacenar el campo blob/texto en una tabla separada. Porque cada vez que se carga por una razón u otra, su ORM cargará toda la fila. Cuando solo necesita la URL de su imagen o publicación, lo último que desea es extraer todo el binario/texto de la base de datos; y sin embargo, su ORM hará exactamente eso ...
- 1. Cuándo usar relaciones de 1 a 1 entre las tablas de la base de datos?
- 2. Código EF Primero - Relación opcional de 1 a 1
- 3. Actualizar campo 1 en una tabla de otro campo en una tabla diferente (OS400, no una relación 1 a 1)
- 4. Representar una relación de 1 a muchos en UML
- 5. mejor forma de almacenar relaciones de usuario 1: 1 en la base de datos relacional
- 6. ¿Una estructura de datos para mapeos 1: 1 en python?
- 7. ¿Debería un controlador MVC y una vista tener una relación de 1 a 1?
- 8. Entity Framework - ¿Por qué EF usa LEFT OUTER JOIN en una relación de 1 a 1?
- 9. relación muchos a muchos en el diseño de la base de datos
- 10. diseño de base de datos: flexibilidad frente a la simplicidad
- 11. Vista previa de la cámara Android: relación de aspecto 1: 1, ¿cómo?
- 12. ¿Tiene sentido usar "LIMIT 1" en una consulta "SELECT 1 ..."?
- 13. Cambiar matriz de base 1 a base 0 matriz
- 14. Excepción causante de la relación 1 a 1: AssociationSet está en estado 'Eliminado'. Teniendo en cuenta las restricciones de multiplicidad
- 15. relación uno a muchos en la base de datos - concepto de diseño
- 16. ¿Diseño de base de datos?
- 17. usar MySQL lower_case_table_names a 1
- 18. Significado de "n: m" y "1: n" en el diseño de bases de datos
- 19. Cuándo usar LDAP en una base de datos?
- 20. ¿Cuándo necesitamos usar [Browsable (true)]?
- 21. Tipo de datos de 1 $ se unen frente ($ 1)
- 22. Normalizando de [0.5 - 1] a [0 - 1]
- 23. ¿Cuándo debería usar una base de datos de objetos?
- 24. SQL Server 2005 de diseño de base de datos - muchos-a-muchos relación con la jerarquía
- 25. Cuándo simular el acceso a la base de datos
- 26. Cómo especificar varias condiciones de combinación de relación 1: 1 en Doctrina 2
- 27. En Javascript, ¿por qué [1, 2] == [1, 2] o ({a: 1}) == ({a: 1}) es falso?
- 28. Ventaja de usar "x * = -1". sobre "x * = -1"?
- 29. ¿Cómo implementar C# enum para el campo enumerado de la base de datos char (1)?
- 30. Diccionario bidireccional 1 a 1 en C#