Especialização SQL Server

20/07/2019

13

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

Responder

Post mais votado

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...

Igor Ferreira

Igor Ferreira
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários,
consulte nossa política de privacidade.

Aceitar