Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

[Dúvida] Microsoft SQL - Cardinalidade

Olá,

Tenho replicado todo o estudo sobre Banco de Dados no Microsoft SQL. Minha dúvida é sobre cardinalidade. Em outros bancos podemos setar [(0:n); (1:n); (1:1)....]. Já no Microsoft SQL é possível (se entendi bem) somente (1:n).

É isso mesmo? Vejam um exemplo importado da Microsoft

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

3 respostas

Daniel,

Com certeza é impossível NÃO ter a cardinalidade"1:1", já a cardinalidade "N:N" NÃO tem mesmo, pois não faz sentido, é obrigatório que seja quebrada em duas de cardinalidade "1:N" cada uma.

Bom, tentei fazer "1:1" no diagrama e não consegui, pesquisei e acabei achando a resposta, segue:

==========================================================

Como criar uma relação 1:1 no SQL Managment RRS feed

SQL Server > SQL Server - Desenvolvimento Geral

No Diagrama do SQL server, não tem como fazer isso , mas vc pode fazer o relacionamento 1:1 via script

Adicionando uma restrição UNIQUE na chave que vc quer .

exemplo, sabendo que uma pessoa física só pode estar associado a um registro na tabela de pessoa

CREATE TABLE [dbo].[Pessoas] (
    [IdPessoa] [INT] NOT NULL PRIMARY KEY,
    [Nome] [VARCHAR](50) NULL, );
CREATE TABLE [dbo].[PessoaFisica] (
    [IdPessoaFisica] [INT] NOT NULL PRIMARY KEY,
    [IdPessoa] [INT] NOT NULL
        FOREIGN KEY REFERENCES dbo.Pessoas (IdPessoa),
    [CPF] [VARCHAR](15) NULL);

basta criar a restrição

ALTER TABLE dbo.PessoaFisica ADD CONSTRAINT UniqueIdPessoa UNIQUE(IdPessoa)

CREATE UNIQUE NONCLUSTERED INDEX [UniqueExceptNulls]
ON [Customers] (SSN)
WHERE [SSN] IS NOT NULL

https://social.msdn.microsoft.com/Forums/pt-BR/f1e4e3cd-bfe2-4395-aabc-38523b5273be/como-criar-uma-relao-11-no-sql-managment

==========================================================

[]'s,

Fabio I.

solução!

Perfeito Fábio. Ficou claro sim.

Muito obrigado!

Daniel, por favor, não esqueça de fechar o tópico e se eu te ajudei, marque minha resposta como correta, desta forma eu poderei ganhar 1K pontos e ficar muito feliz... KKKKK!!!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software