Duvida na criação de foreign key

18/08/2013

0

Bom dia galera sou novo no fórum e tambem no sql.

Bem vamos la ..

Galera precisava fazer a conexão de uma tabela com a outra vou colocar como montei aqui.

Estarei colocando o nome da tabela e os campos ok?

Tentei ate criar um campo a + só para a foreign key.

esta assim:

create table cliente
(
cod_cliente int primary key identity (1,1),
nomecliente varchar (30),
RG varchar (15),
CPF varchar (15),
Telefone varchar (20),
Celular varchar (20),
Rua varchar (30),
Bairro varchar (30),
Municipio varchar(30),
Estado varchar (2),
)

---------------------------------------------------------------------
create procedure salvados
@nomecliente varchar (30),
@RG varchar (15),
@CPF varchar (15),
@Telefone varchar (20),
@Celular varchar (20),
@Rua varchar (30),
@Bairro varchar(30),
@Municipio varchar (30),
@Estado varchar (2)
As
insert into cliente (nomecliente,RG,CPF,Telefone,Celular,Rua,Bairro,Municipio,Estado) values (@nomecliente,@RG,@CPF,@Telefone,@Celular,@Rua,@Bairro,@Municipio,@Estado)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
create procedure alterados
@cod_cliente int,
@nomecliente varchar (30),
@RG varchar (15),
@CPF varchar (15),
@Telefone varchar (20),
@Rua varchar (30),
@Bairro varchar (30),
@municipio varchar(30),
@Estado varchar (2)
as
update cliente set nomecliente=nomecliente,RG=RG,CPF=CPF,Telefone=Telefone,Rua=Rua,Bairro=Bairro,Municipio=Municipio,Estado=Estado
---------------------------------------------------------------------------------------------------------------------------------------------------------------------

create procedure deletar
@cod_cliente int
as
delete cliente where cod_cliente=@cod_cliente
---------------------------------------------------------------------------------------------------------------------------------------------------------------
Create table ordem_serviço

(
cod_serviço int primary key identity (1,1),
numero_de_serie varchar (20),
nome_componente varchar (25),
nomedofabricante varchar (20),
defeito varchar (20),
datadeentrada date,
datadesaida date,
prazoprevisto date,
valordoserviço money,
andamento varchar (10)

constraint fk_cod_cli foreign key (cod_serviço) references cliente (cod_cliente)
)



create procedure salveordem

@numero_de_serie varchar(20),
@nome_componente varchar (25),
@nomedofabricante varchar(20),
@defeito varchar (20),
@datadeentrada date,
@datadesaida date,
@prazoprevisto date,
@valorserviço money,
@Nome_cliente varchar (30),
@andamento varchar(10)

As
insert into ordem_serviço(numero_de_serie,nome_componente,nomedofabricante,defeito,datadeentrada,datadesaida,prazoprevisto,valordoserviço,andamento) values (@numero_de_serie,@nome_componente,@nomedofabricante,@defeito,@datadeentrada,@datadesaida,@prazoprevisto,@valorserviço,@andamento)

create procedure alteraordem

@cod_serviço int,
@numero_de_serie varchar(20),
@nome_componente varchar (25),
@nomedofabricante varchar(20),
@defeito varchar (20),
@datadeentrada date,
@datadesaida date,
@prazoprevisto date,
@andamento varchar(15)


As
update ordem_serviço set numero_de_serie=numero_de_serie,nome_componente=nome_componente,nomedofabricante=nomedofabricante,defeito=defeito,datadeentrada=datadeentrada,datadesaida=datadesaida,prazoprevisto=prazoprevisto,andamento=andamento where cod_serviço=@cod_serviço

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

create procedure deleteordem
@cod_serviço int

As
delete ordem_serviço where cod_serviço =@cod_serviço
---------------------------------------------------------------------------

create table fornecedor
(
cod_fornecedor int primary key identity (1,1),
razaosocial varchar (30),
nomefantasia varchar (30),
datacadastro date,
telefone varchar (20),
fax varchar (15),
cnpj_cpf varchar (15),
endereço varchar (30),
bairro varchar (20),
cidade varchar (30),
estado varchar (2),
cep varchar (15),
banco varchar (20),
agencia int ,
conta varchar (30),
nome_transportadora varchar(30),
fkdeproduto int
)
alter table fornecedor
add constraint fk_codigo_produto foreign key (cod_fornecedor) references produto (codigo_produto)



create table produto
(
codigo_produto int primary key identity(1,1),
cod_fornecedor int,
datadecadastro date,
descrição_produto varchar (40),
fkcod_receb int
)
alter table produto
add constraint fk_cod_produto foreign key (cod_receb) references produto(codigo_produto)



create table contasapagar
(
cod_apagar int primary key identity (1,1),
datavenc date,
numerodocumento int ,
valor money,
tipo varchar (5),
fk_codigo_produto int
)

alter table contasapagar
add constraint fk_cod_pagar foreign key (codigo_produto) references contasapagar(cod_pagar)

create table contasareceber
(
cod_receb int primary key identity (1,1),
datareceb date,
doc_num int,
valor money,
datavencim date,
datarecebi date,
observação varchar (40),
fk_cod_serviço int
)
alter table contasareceber
add constraint fk_cod_serviço foreign key (cod_serviço) references contasareceber(cod_receb)

Então galera ate a ordem parece funcionar mais não sei se esta certo.

Peço sugestões de como poderia fazer.

Agradeço desde já.

Tadeu Costa

Tadeu Costa

Responder

Posts

18/08/2013

Tiago

Bom dia,

Minha sugestão é que siga estes passos:

1-- Oque seria uma chave estrangeira? isso é a primeira pergunta que precisa fazer, entenda o seu funcionamento e veja se consiga aplicar no domínio que está trabalhando.

2- Como criar referencias de uma tabela para outra? Eu conheço duas formas, uma você pode fazer via comando mesmo SQL e outra pelo query designer, a vantagem desta ultima é que o código é gerado para você automaticamente.

3- Para garantir realize alguns comandos inserts para testar a integridade das tabelas;

Espero ter ajudado.
Responder

06/09/2013

Roniere Almeida

isso é extramente importante, antes de mais nada planejar como o nosso amigo acima citou...dados é algo que requer muitos cuidados.
Responder

06/09/2013

Tiago

Os dados são a base, se isso está errado com certeza a programação segurá de forma errada.. Aconselho que desenhe,rabisque o fluxo várias vezes, para ter total entendimento do negócio;
Responder

07/09/2013

Roniere Almeida

Entidade Relacionamento?
Responder

07/09/2013

Tiago

Isso. Também é interessante conhecer o fluxo básico e alternativos do sistrema, tendo isto é possível avaliar a necessidade de alguns campos e relacionamentos.
Responder

07/09/2013

Roniere Almeida

o que seria esse fluxo basico e alternativos?
Responder

07/09/2013

Tiago

Bom isso são termos da análise de requisitos. Fluxo básico é o fluxo comum do processo e os fluxos alternativos são as acões em que o ator pode ou não fazer..

O que isso tem a ver com a modelagem de dados? Bom uma vez que o fluxo do sistema está bem entendido, fica mais claro para o analista quais tabelas e campos serão necessários.

Resumindo: É preciso entender do negócio antes de começar a modelagem.


Responder

08/09/2013

Vinicius Oliveira

Prezados,

Concordo com todas as informações citadas.

Para criar uma foreign key a tabela Pai deve ter uma chave primária, a qual é usada para se referir à tabela filho.
Responder

08/09/2013

Vinicius Oliveira

Prezados,

Concordo com todas as informações citadas.

Para criar uma foreign key a tabela Pai deve ter uma chave primária, a qual é usada para se referir à tabela filho.
Responder

09/09/2013

Roniere Almeida

Bom isso são termos da análise de requisitos. Fluxo básico é o fluxo comum do processo e os fluxos alternativos são as acões em que o ator pode ou não fazer..

O que isso tem a ver com a modelagem de dados? Bom uma vez que o fluxo do sistema está bem entendido, fica mais claro para o analista quais tabelas e campos serão necessários.

Resumindo: É preciso entender do negócio antes de começar a modelagem.




blz, entendido, na faculdade, essa parte da modelagem é bem extensa. bastante exercicios para fixar.
Responder

09/09/2013

Tiago

blz, entendido, na faculdade, essa parte da modelagem é bem extensa. bastante exercicios para fixar.



Hehe e como... me lembro que não gostava muito, mas hoje vejo o quanto é necessário ter o conhecimento base do projeto.
Responder

10/09/2013

Alex Lekao

eu estou vendo especificamente a respeito destas coisas na Faculdade nas aulas de LPBD... e to gostando eh bem interessante.

Normalizacao e tal... muuuuito loko o negocio e gostoso de analisar, trabalhoso... mas gostoso.. rsrsr
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar