En SQL / MySQL, ¿hay razones para no poner una relación uno a uno en la misma tabla?

La relación uno a uno por lo general se puede almacenar en la misma tabla. ¿Hay razones para no almacenarlos en la misma tabla?

Número y tipo de columnas. Hay un límite en el tamaño de las columnas en una tabla. Mira aquí . Hay un máximo de 8,060 bytes por fila.

Las tablas muy grandes también pueden afectar el performance y pueden ser difíciles de optimizar e indexar bien.

Esto es aparte de mantener los datos conceptualmente diferentes, separados unos de otros. Por ejemplo, un país y una moneda tienen una relación de 1 a 1 (ejemplo ilustrativo, sé que este no es siempre el caso). Todavía no los mantendría juntos.

Encontrará información sobre cuándo es útil crear relaciones de uno a uno en http://onlamp.com/pub/a/onlamp/2001/03/20/aboutSQL.html

Lo más importante es seguir:

El indicador key de una posible necesidad de una relación de uno a uno es una tabla que contiene campos que solo se usan para un determinado subset de los loggings en esa tabla.

He hecho esto para evitar el locking / locking, coloque las columnas pesadas de lectura en una tabla las columnas pesadas de actualización en otra, funcionó como un amuleto. Una gran cantidad de grandes transactions de actualización de grasa fueron ralentizando un montón de lecturas.

Las relaciones de uno a cero o uno son comunes y están vinculadas desde el opcional al obligatorio; el ejemplo dado en http://onlamp.com/pub/a/onlamp/2001/03/20/aboutSQL.html es de esto amable, no uno a uno. Las relaciones tipo / subtipo pueden implementarse de esta manera.

las relaciones uno-a-uno ocurren cuando cada una representa una entidad clara y significativa, que en un context diferente puede estar en una relación diferente y donde un cambio menor a los requisitos puede cambiar la cardinalidad de la relación. Es arbitrario con qué enlaces, por lo que es mejor elegir uno para que sea opcional y convertir uno a cero o uno.