Integridade referencial MySQL

Maio 15, 2009 at 10:56 am (mysql)

Lendo alguns artigos na net, encontrei este exemplo de integridade referencial no MySQL. Achei bem interessante pois já passei por um fato em que a utilização dessa solução seria ideal: eu precisava ao deletar um registro de um autor, deletar todos os canais dele e seus arquivos.

Antes de dar o exemplo, pesquisei a diferença entre tabelas MyISAM e InnoDB, pois para isso ser possível deve ser usado o tipo de tabela InnoDB. As tabelas do tipo MyISAM não suportam esse recurso.

InnoDB trabalha com integridade referencial e MyISAM não, no entanto, em matéria de performance, MyIsam é mais rápido. Então varia muito do uso.
Se em seu sistema uma tabela não precisar ter qualquer tipo de relacionamento com outras tabelas, então crie ela utilizando o motor MyISAM, que irá ter melhor performance. Caso precise de relacionamentos, utilize o InnoDB. Um bom exemplo para tabela do tipo MyIsam seria uma tabela de log de sistema, onde os dados armazenados não necessitam de relacionamento com outras tabelas.

Bom então vamos ao exemplo:

CREATE TABLE carro (
id int not null auto_increment,
marca varchar(25) not null,
modelo varchar(25) not null,
ano_fab date not null,
ano_mod date not null,
primary key(id)
) engine=InnoDB;

CREATE TABLE carro_acessorios (
carro_id int not null,
descricao varchar(150) not null,
preco decimal(10,2) not null,
key(carro_id),
foreign key (carro_id) references carro (id) on delete cascade
) engine=InnoDB;

Nesse exemplo temos a tabela de carros e uma tabela de acessórios que esse carro possui. Se o registro do carro for apagado, os registros de acessórios também serão.

Vamos analisar a linha responsável por isso:

* foreign key (carro_id)…: Aqui está sendo definido qual é o campo da tabela que será referenciado.
* …references carro (id)…: Aqui está sendo definido que está se referenciando ao campo ‘id’ da tabela carro.
* …on delete cascade: E por fim se o campo no qual ele está fazendo referência for apagado, ele é apagado também.

Para maiores informações sobre integridade referencial no MySQL acesse: http://dev.mysql.com/doc/refman/5.0/en/innodb-foreign-key-constraints.html

Fonte: ITATUX

Link Permanente 1 Comentário

Podcast Canção Nova

Julho 8, 2008 at 9:12 am (ajax, canção nova, javascript, mysql, php, trabalhos) (, , , )

Este é o novo portal da Canção Nova que brevemente estará no ar: o Canção Nova Podcast.

O Projeto trata-se de um portal que reunirá todos os conteúdos em áudio (podcast) criados por autores da comunidade Canção Nova, e serão divididos por categorias. A especificação do projeto e a criação do Banco de dados deram início em abril deste ano, e contou com a supervisão do Padre Xavier, André Bittencourt e Luciana Silva M.

O portal e o sistema de administração, começaram a serem desenvolvidos em meados de abril e começo de maio, por mim e por minha querida colega de trabalho Patricia Fernandes!! Usamos PHP, Ajax, JavaScript, MySQL.

O design do site foi feito pela equipe de SP, e o design do admin foi feito pelo nosso grande designer Marco Moura!

Bom é isso aí, espero que seja aprovado, e logo logo esteja no ar para vocês conferirem!

Administrador Podcast Canção Nov

Administrador Podcast Canção Nova

canção nova podcast

Canção Nova Podcast

Link Permanente 1 Comentário