Especialização SQL Server

SQL Server

Relacionamento 1:1

Banco de Dados

20/07/2019

Pessoal preciso especializar a tabela Cliente em Pessoa Física e Jurídica, fiz isso:
create table tb_cliente(
	cod_cliente int not null identity,
	email_cliente VARCHAR(100) not null,
	constraint tb_cliente_PK primary key (cod_cliente)
	)
go
create table tb_cliente_fisico(
	nome_fisico varchar(15) not null,
	rg_fisico varchar(12) not null,
	cpf_fisico char(11) not null,
	datanasc_fisico datetime not null,
	cod_cliente int not null identity,
	constraint tb_cliente_fisico_PK primary key (cod_cliente),
	constraint tb_cliente_tb_cliente_fisico_FK foreign key (cod_cliente)
		references tb_cliente (cod_cliente)
	)
go
create table tb_cliente_juridico(
	nome_fantasia varchar(40) not null,
	razao_social varchar(20) not null,
	cod_cliente int not null,
	cnpj char(14) not null
	constraint tb_cliente_juridico_PK primary key (cod_cliente),
	constraint tb_cliente_tb_cliente_juridico_FK foreign key (cod_cliente) references tb_cliente (cod_cliente)
)


Não sei se esta certo e nesse caso como eu faria para usar o insert e o select nas tabelas, por exemplo "como faço para inserir um Cliente Pessoa Física?"
Arthur Nascimento

Arthur Nascimento

Curtidas 0

Melhor post

Igor Ferreira

Igor Ferreira

22/07/2019

Boa noite, tudo bem?

Acho que o correto é remover estas duas tabelas tb_cliente_juridico, tb_cliente_fisico e passar tudo para a tabela tb_cliente

create table tb_cliente(
cod_cliente int not null identity,
email_cliente VARCHAR(100) not null,
nome_fantasia varchar(40) not null,
razao_social varchar(20) not null,
cpfcnpj char(14) not null,
datanasc datetime,
rg_ie int,
constraint tb_cliente_PK primary key (cod_cliente)
)
go

Atualmente trabalho convertendo banco de dados e vejo que muitos vem assim, de fato bem "generalizado", o que você poderia fazer é passar os dados de contato para outra tabela, referenciando apenas o codigo, mas se de fato está certo, não sei te responder...
GOSTEI 1
POSTAR