Como implementar uma relação um para um numa base de dados?
sobes.tech IA
Resposta da IA
A relação "um para um" numa base de dados relacional é implementada através de uma restrição única e de uma chave estrangeira. As formas mais comuns:
-
Utilização de uma chave primária comum: Duas tabelas usam o mesmo campo como chave primária, que também é uma chave estrangeira referindo-se à chave primária da outra tabela.
-
Utilização de uma chave estrangeira única: Em uma das tabelas, cria-se um campo que é uma chave estrangeira referindo-se à chave primária de outra tabela, e a este campo é aplicada uma restrição de unicidade.
Exemplo com chave primária comum (no SQL Server):
CREATE TABLE UserProfiles (
UserId INT PRIMARY KEY,
FirstName NVARCHAR(50),
LastName NVARCHAR(50)
);
CREATE TABLE UserDetails (
UserId INT PRIMARY KEY, // É também a chave primária e a chave estrangeira
Address NVARCHAR(100),
Phone NVARCHAR(20),
CONSTRAINT FK_UserDetails_UserProfiles FOREIGN KEY (UserId) REFERENCES UserProfiles(UserId)
);
Exemplo com chave estrangeira única (no SQL Server):
CREATE TABLE Users (
UserId INT PRIMARY KEY,
Username NVARCHAR(50) UNIQUE
);
CREATE TABLE UserInfo (
UserInfoId INT PRIMARY KEY, // Chave primária do UserInfo
UserId INT UNIQUE, // Chave estrangeira única referindo-se aos Users
Email NVARCHAR(100),
CONSTRAINT FK_UserInfo_Users FOREIGN KEY (UserId) REFERENCES Users(UserId)
);
A escolha entre estas abordagens depende da semântica dos dados e da conveniência do acesso. A ligação por chave primária comum é frequentemente usada quando os dados da segunda tabela são uma extensão opcional da primeira. A chave estrangeira única é mais flexível se as chaves primárias das tabelas não coincidirem inicialmente.