Sobes.tech
Middle

¿Cómo implementar una relación uno a uno en una base de datos?

sobes.tech AI

Respuesta de la IA

La relación "uno a uno" en una base de datos relacional se implementa mediante una restricción única y una clave externa. Las formas más comunes:

  1. Uso de una clave primaria común: Dos tablas utilizan el mismo campo como clave primaria, que también es una clave externa que hace referencia a la clave primaria de la otra tabla.

  2. Uso de una clave externa única: En una de las tablas se crea un campo que es una clave externa que hace referencia a la clave primaria de otra tabla, y a este campo se le aplica una restricción de unicidad.

Ejemplo con clave primaria común (en SQL Server):

CREATE TABLE UserProfiles (
    UserId INT PRIMARY KEY,
    FirstName NVARCHAR(50),
    LastName NVARCHAR(50)
);

CREATE TABLE UserDetails (
    UserId INT PRIMARY KEY, // Es también clave primaria y clave externa
    Address NVARCHAR(100),
    Phone NVARCHAR(20),
    CONSTRAINT FK_UserDetails_UserProfiles FOREIGN KEY (UserId) REFERENCES UserProfiles(UserId)
);

Ejemplo con clave externa única (en SQL Server):

CREATE TABLE Users (
    UserId INT PRIMARY KEY,
    Username NVARCHAR(50) UNIQUE
);

CREATE TABLE UserInfo (
    UserInfoId INT PRIMARY KEY, // Clave primaria de UserInfo
    UserId INT UNIQUE,         // Clave externa única que hace referencia a Users
    Email NVARCHAR(100),
    CONSTRAINT FK_UserInfo_Users FOREIGN KEY (UserId) REFERENCES Users(UserId)
);

La elección entre estos enfoques depende de la semántica de los datos y la conveniencia del acceso. La conexión mediante clave primaria común se usa a menudo cuando los datos de la segunda tabla son una extensión opcional de la primera. La clave externa única es más flexible si las claves primarias de las tablas no coinciden inicialmente.