FK (Chave Estrangeira [Foreign Key]) usando POO no Delphi

31/07/2018

0

Estou estudando MVC com Delphi... Mas me surgiu a dúvida de como faço pra utilizar uma FK por exemplo no banco de dados tenho uma tabela cidade
CREATE TABLE CIDADE(
    ID INTEGER GENERATED BY DEFAULT AS IDENTITY,
    NOME VARCHAR(100) NOT NULL,
    UF VARCHAR(2) NOT NULL
);

CREATE TABLE PESSOA(
    ID INTEGER GENERATED BY DEFAULT AS IDENTITY,
    NOME VARCHAR(100) NOT NULL,
    CPF VARCHAR(20) NOT NULL,
    ID_CIDADE INTEGER NOT NULL, -- FK DE CIDADE
    BAIRRO VARCHAR(45),
    CEP VARCHAR(10),
    ENDERECO VARCHAR(100),
    NUMERO VARCHAR(10)
);


Como faço pra usar essa FK na minha estrutura MVC utilizando OO no Delphi, Se alguém puder me dar um exemplo rápido com essas duas tabelas pra min ter uma noção agradeço!!
Ariel Morgan

Ariel Morgan

Responder

Post mais votado

31/07/2018

Oi Ariel,

Nesse caso, a melhor forma de se utilizar, seria se você tivesse essas duas classes:

TCidade = class
	private
		FID   : Integer;
		FNome : String;
		FUF   : String;
	public
		{As propertyes ou getters e setters}
end;

TPessoa = class
	private
		FID   	  : Integer;
		FNome     : String;
		FCPF  	  : String;
		FCidade   : TCidade;
		FBairro   : String;
		FCEP      : String;
		FEndereco : String;
		FNumero   : String;
end;


Note que em Cidade, criei uma estancia do objeto Cidade, porque nesse caso, tenho acesso fácil aos dados da cidade, caso tenha que recuperar uma informação de lá. Quando você dar um Edit, por exemplo na sua classe, pode carregar os dados de Pessoa e Cidade, cada uma em seu respectivo objeto.

Qualquer dúvida estou a disposição.

Fernando Duwe

Fernando Duwe
Responder

Mais Posts

31/07/2018

Ariel Morgan

Muito obrigado pela ajuda... Pode ser algo simples, mas pra quem está aprendendo é uma grande ajuda!! Obrigado mesmo.
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