[Cascavel-pm] Dúvida em implementação de BD. Opiniões?
Sandro Vitenti
sandro em webengines.com.br
Terça Março 9 21:36:13 CST 2004
Francisco Lopes wrote:
>Olá Perl Monges,
>
>Mexo com Perl há alguns anos já, leio a lista desde o início, mas não
>participo muito. Fico apenas no modo "lurker". Alguns me conhecem, aos
>outros olá. :)
>
>Bom, feita a apresentação, minha dúvida:
>
>Estou desenvolvendo uma ferramenta para administração de conteúdo em
>diversos sites e me surgiu uma dúvida. A questão em si é simples, mas
>prefiro ouvir o que os monges tem para me dizer.
>
>Ao adicionar uma entrada ao banco de dados, pode-se escolher em quais
>sites esta entrada estará disponível (o sistema permitirá administrar
>vários sites, desde que na mesma máquina).
>
>
Bem, pelo q pude entender a solucao (c) seria a mais apropriada, mas
com uma 'pequena' modificacao
algo assim
CREATE TABLE sites(
id int not null auto_increment (mysql)OU id serial (postgres),
name varchar(60) NOT NULL,
PRIMARY KEY(id)
)
CREATE TABLE conteudo(
id int not null auto_increment (mysql)OU id serial (postgres),
...
PRIMARY KEY (id)
)
CREATE TABLE site_conteudo(
site_id INT NOT NULL (so pra postgres) REFERENCES sites (id),
conteudo_id INT NOT NULL (so pra postgres) REFERENCES conteudo (id)
)
Se eu entendi bem seu problema, acho q essa seria uma boa solucao, e
melhor se for com
postgres pois vc teria algum controle de chave.
para pegar todo conteudo de todos sites simplesmente
SELECT * FROM conteudo;
para pegar todo conteudo do site 'www.blaha.com.br'
SELECT * FROM conteudo,sites,site_conteudo
WHERE conteudo.id=site_conteudo.conteudo_id AND
site_conteudo.site_id=sites.id AND
sites.name = 'www.blaha.com.br'
ou se ja tiver o id do site, 2 por exemplo
SELECT * FROM conteudo,site_conteudo
WHERE conteudo.id=site_conteudo.conteudo_id AND
site_conteudo.site_id=2
Ah, e se usar o postgres talves seja uma boa ideia criar index nas
colunas com referencias
Espero que ajude...
Sandro Vitenti
Mais detalhes sobre a lista de discussão Cascavel-pm