Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

tony_lu

Banco de dados para Guias de Empresas

Recommended Posts

Ola pessoal, estou com um projeto grande para realizar e tenho duvidas da melhor forma de trabalhar com o banco de dados.

 

Se trata de um guia comercial. Cada empresa será classificada por categorias. Tenho em mente as seguintes tabelas:

 

Tabela Empresas

idEmpresa

nomrEmpresa

endereco

cidade

estado

etc...

 

Tabela Categorias

idCategoria

nome

 

No portal, o usuário vai ter um campo onde ele vai digitar o nome do que ele quer por exemplo (ex: Pizzarias ou Restaurantes), então a programação tem que buscar o nome da categoria e relacionar as empresas.

 

A melhor forma seria então de criar uma 3ª tabela relacionando as empresas com a categoria e a minha programação realizar a busca nessa tabela e quando for listar as empresas fazer uns innerjoin nas tabelas? ex da terceira tabela de relacionamento:

 

Tabela Empresa_Categorias

 

idRelacionamento

idEmpresa

idCategoria

 

Queria saber se existe uma melhor forma de realizar este processo, minha preocupação é na hora da filtragem, de tornar o sistema lento...enfim aguardo as observações de quem puder ajudar.

 

Muito obrigado!

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

A Tabela de Categoria poderia ter um auto-relacionamento

 

 

Categoria

__________

Cod_categoria

Descricao_categoria

Cod_categoria_principal

 

 

Isto permitiria Categorias assim

 

Restaurante

___Pizzaria

___Churrascaria

___Rodizio

___Comida_a_peso

___Entrega

 

Permite a busca por entrega , pizzaria ou restaurante.

 

 

A tabela de Empresa eu faria

 

 

Empresa----<Filial

 

Filial teria o endereço do guia , é comum uma empresa ter mais de uma filial na mesma cidade.

Empresa teria apenas os dados da sede , para cobrança por exemplo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A Tabela de Categoria poderia ter um auto-relacionamento

 

 

Categoria

__________

Cod_categoria

Descricao_categoria

Cod_categoria_principal

 

 

Isto permitiria Categorias assim

 

Restaurante

___Pizzaria

___Churrascaria

___Rodizio

___Comida_a_peso

___Entrega

 

Permite a busca por entrega , pizzaria ou restaurante.

 

 

A tabela de Empresa eu faria

 

 

Empresa----<Filial

 

Filial teria o endereço do guia , é comum uma empresa ter mais de uma filial na mesma cidade.

Empresa teria apenas os dados da sede , para cobrança por exemplo.

 

Ola Motta, obrigado pela sua ideia em trabalhar com categorias e subcategorias...

 

Agora falando do buscador, como você faria o sql para buscar as informações conforme o filtro que o usuario digitar, neste exemplo que você passou, o cara digita "Churrascaria" por exemplo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

imaginando q as categorias nao sao mtas eu nao deixaria ele buscar em si, a medida q ele digita vai filtrando e aparecendo como faz no google

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo mas minha duvida é referente ao banco de dados... como eu faria esse relacionamento entre as empresas e categorias na hora da filtragem...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Imaginando como o motta propos...

 

 

Tabela -Empresa-

Id_Empresa

Nome_Empresa

 

Tabela -Categoria-

Id_Categoria

Nome_Categoria

 

Tabela -Empresa_Categoria-

Id_Empresa

Id_Categoria

select * from empresa e, categoria c, empresa_categoria ec
where
e.id_empresa = ec.id_empresa
and c.id_categoria = ec.id_categoria
and c.nome_categoria like '%churrascaria%'

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Imaginando como o motta propos...

 

 

Tabela -Empresa-

Id_Empresa

Nome_Empresa

 

Tabela -Categoria-

Id_Categoria

Nome_Categoria

 

Tabela -Empresa_Categoria-

Id_Empresa

Id_Categoria

select * from empresa e, categoria c, empresa_categoria ec
where
e.id_empresa = ec.id_empresa
and c.id_categoria = ec.id_categoria
and c.nome_categoria like '%churrascaria%'

 

Bacana Giesta, você acha que essa seria a melhor maneira de se trabalhar neste caso ... falando de estrutura de banco de dados e a query ou você estruturava diferente? Obrigado pela atenção...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para que uma empresa possua diversas categorias é o jeito correto de se fazer. Vale lembrar que é importante colocar chaves e indices nos pontos de juncao.

 

Caso vc queira fazer com sub-grupos, que eu nao acho q seja necessario seria necessario definir quantos niveis/camadas/subgrupos seriam e atrelar esta tabela com left join, isso pq o mysql nao é mto bom com tabelas auto relacionais ao contrario do oracle por exemplo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para que uma empresa possua diversas categorias é o jeito correto de se fazer. Vale lembrar que é importante colocar chaves e indices nos pontos de juncao.

 

Caso você queira fazer com sub-grupos, que eu nao acho q seja necessario seria necessario definir quantos niveis/camadas/subgrupos seriam e atrelar esta tabela com left join, isso pq o mysql nao é mto bom com tabelas auto relacionais ao contrario do oracle por exemplo

 

Muito obrigado pela ajuda Giesta, não será necessário neste caso subgrupos. Pode me dar uma orientação de onde adicionar essas chaves e indices para otimizar as buscas por favor?

 

Obrigado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

nos pontos de juncao (campos envolvidos no where) e indice onde a pesquisa é feita.

 

depois vc deve executar um explain pra ver se o banco esta usando tudo direitinho.

 

Se a resposta te ajudou marque como resolvido :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gosto mais de buscas do tipo Combobox marcando mais de uma opção , a busca fica melhor pois vai nos índices.

 

Não que a proposta do giesta seja ruim , apenas questão de gosto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gosto mais de buscas do tipo Combobox marcando mais de uma opção , a busca fica melhor pois vai nos índices.

 

Não que a proposta do giesta seja ruim , apenas questão de gosto.

 

Ola motta, é que no caso neste portal que vou desenvolver o cliente quer que seja digitado a opção entendeu? Por isso acho que não tem outra forma a não ser dessa forma correto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.