Fórum Relacionamento de Tabelas #37433

17/07/2003

0

Tenho duas tabelas :

Alunos e Frequencias

A tabela Frequencias é filha da tabela Alunos, ou seja para cada aluno temos N frequencias.

Eu sempre fiz este tipo de relacionamente através do Delphi, gostaria de saber se é possivel fazer através do Interbase ou seja dentro do próprio banco de dados e como?

Obrigado.


Marcelootone

Marcelootone

Responder

Posts

17/07/2003

Afarias

É possível sim!

Utilize Integridade Referencial com CONSTRAINTS (chaves primárias e estrangeiras) ou com TRIGGERS!


Abraço


Responder

Gostei + 0

17/07/2003

Marcelootone

Como Utilizo as Constraints?

pode me dar um exemplo, de quais campos serão chaves e em qual tabela ficará a Foreign Key?


Responder

Gostei + 0

17/07/2003

Afarias

|Como Utilizo as Constraints?

Dê uma lida na documentação de SQL nos comandos: CREATE TABLE e ALTER TABLE (ADD CONSTRAINT)


|pode me dar um exemplo, de quais campos serão chaves e em qual
|tabela ficará a Foreign Key?

Numa relação Mestre/Detalhe por exemplo, a constraint é criada na tabela ´Detalhe´ ... ou seja, a constraint é sempre criada na tabela q ´valida´ algum ´valor´ contido em uma outra tabela.

exemplo:

create table produtos (
codigo integer not null,
nome varchar(30),
primary key (codigo));

create table vendedores (
codigo integer not null,
nome varchar(30),
primary key (codigo));

create table vendas (
numero integer not null,
cod_vendedor integer,
data date,
primary key (numero));

alter table vendas add constraint fk_vendas_vendedor foreign key (cod_vendedor)
references vendedores;

create table itens (
num_venda integer not null,
ordem integer not null,
cod_produto integer,
qtde integer);

alter table itens add constraint fk_itens_venda foreign key (num_venda)
references vendas on delete cascade;

alter table itens add constraint fk_itens_produto foreign key (cod_produto)
references produtos on update cascade;


T+


Responder

Gostei + 0

18/07/2003

Marcelootone

Obrigado.


Responder

Gostei + 0

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

Aceitar