Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite pessoal!
Bom ... não sou novo aqui no fórum mas também não sou ativo. Criei esta conta a um tempo atrás e de lá pra cá deixei de lado a programação. Como disse volto hoje na condição de iniciante e gostaria de pedir uma ajuda a vocês.
Estou desenvolvendo um site de guia de ofertas e não gostaria de usar nenhum tipo de CMS, a primeira dúvida que surgiu foi a seguinte:
Com essa modelagem de tabela.
CAT_OFERTAS
[cat_id] => 1 [cat_nome] => Moda e Acessórios [cat_url] => moda-e-acessorios [id_pai] => 0
[cat_id] => 2 [cat_nome] => Masculino [cat_url] => masculino [id_pai] => 1
[cat_id] => 3 [cat_nome] => Camisetas [cat_url] => camisetas [id_pai] => 2
OFERTAS
[ofe_id] => 1 [ofe_titulo] => Camiseta Cavalera Estampada [ofe_categoria] => ???
Como eu poderia chegar por exemplo nesse tipo de url?
Url 1 -> www.meusite.com.br/moda-e-acessorios/masculino/camisetas/camiseta-cavalera-estampada
Como as subcategorias são infinitas, se talvez não existisse a subcategoria "Masculino"
Url 2 -> www.meusite.com.br/moda-e-acessorios/camisetas/camiseta-cavalera-estampada
Não tenho a mínima ideia de como fazer a url funcionar com esse tipo de modelagem?!
Na hora da listagem de categorias a pessoa poderia clicar em "Moda e Acessórios" e listar a tal "Camiseta Cavalera Estampada" ou por exemplo clicar em "Masculino" e listar novamente a tal "Camiseta Cavalera Estampada" e assim por diante.
Minha cabeça está dando um nó ... basicamente 3 níveis de categorias pra mim seriam suficientes, mas pode ser que no futuro eu precise ampliar esse número, por isso pensei nesse tipo de modelagem.
Alguém teria um exemplo ou um estudo que me ajudasse a resolver esse meu problema?
junior.vieiraComo eu disse o site será um guia de ofertas e desta maneira seria mais interessante para o usuário poder pesquisar por aquilo que realmente lhe interessa.
No projeto vários tipos produtos poderão ser anunciados e não somente "Moda e Acessórios" por exemplo. Se fosse, bastaria eu criar a categoria "Camisetas" e separa-las por masculino e feminino, mas poderão ser anunciados "Veículos e acessórios", "Alimentação", etc... Por isso a necessidade de ter tantos níveis.
Se por um acaso eu estiver equivocado, poderia me ajudar com alguma sugestão?
Desde já agradeço a atenção. Abraço!
Minha sugestão é que a estrutura da url do seu produto siga uma lógica bem clara :
moda-e-acessorios/ => Isso seria uma Sessão que contem a Categoria que o produto pertence
masculino/ =>Isso é um atributo do produto
camisetas/ =>Isso seria uma CATEGORIA que o produto esta contido
/camiseta-cavalera-estampada => Isso seria a url-amigavel do nome do produto
Numa ordem mais real :
moda-e-acessorios/camisetas/masculinas/camiseta-cavalera-estampada
você teria:
tabela Sessao (*Moda e Acessorios,Eletrodomésticos, Cama Mesa e Banho, etc..)
tabela Categoria (Camiseta, Calça, Short, etc..)
=>Sessoa_FK
Tabela Produto (camiseta-cavalera-estampada, etc..)
=>Categoria_FK
=>ID
=>NOME
=>GENERO [Masculino, Feminino, Unissex] Pode ser um TINYINT(1) ;
Não sei se fui suficientemente claro.
Qualquer duvida, eu posso tentar melhorar a explicação.
PS: FK = Foreign Key (Chave Estrangeira)
Abraços!
Acho que entendi a sua lógica e gostei bastante, assim eu não precisaria criar "subcategorias" não é isso?
Acho que inverti a ordem da url por conta de que terão outros tipos de produtos que talvez não se encaixaria, exemplo:
SUA URL => veiculos-e-acessorios/pneu/pneus-rodas-e-calotas/pneu-pirelli-aro-13
MINHA URL => veiculos-e-acessorios/pneus-rodas-e-calotas/pneu/pneu-pirelli-aro-13
veiculos-e-acessorios => Seria a sessão
pneus-rodas-e-calotas => Seria a categoria
pneu => Seria o atributo
pneu-pirelli-aro-13 => Seria a url amigável
Ou falei besteira?
Abraço!
Minha lógica :
veiculos-e-acessorios => Seria a sessão
pneus-rodas-e-calotas => Seria a categoria
pneu => Seria desnecessário pois fica subentendido que a categoria Pneus Rodas e Calotas, contem o produto PNEU
pneu-pirelli-aro-13 => Seria a url amigável do produto que teria o nome Pneu Pirelli aro 13.
Uma alternativa seria separas a Categoria Pneus Rodas e Calotas em três outras:
Pneus
Rodas
Calotas
ae sim você teria sua url :
veiculos-e-acessorios/pneus/pneu-pirelli-aro-13
Abraço!
Ahhh ... entendi!
Acho que sua solução será mais lógica para o meu projeto.
Se eu quisesse por alguns filtros para pesquisa, esse atributo do produto poderia ser um array? Se sim não iria ser ruim para SEO sendo que ficaria várias url's apontando para o mesmo produto?
Claro, uma vez que o produto será um item na tabela, todos os campos que compõem a tabela Produtos podem ser tratados como um array, vai depender da maneira como você vai levar seu projeto pro código.
ex.;
$classProduto = new Produto();
$produdo = $classProduto->getUmProduto($codigoProduto);
var_dump($produto);
array[
'id' => '1',
'sessao' => 'Carros e acessórios',
'categoria' => 'Pneus',
'nome => 'Pneu Pirelli aro 13',
.... todos os atributos
]
Mais ou menos assim.
Não repara no pseudo Código não, eu não tive tempo de projetar melhor.
mas é mais ou menos a lógica que eu seguiria, já falando no escopo do código neh.
Abraço!
Só pra gente finalizar....
Acho que não fui claro na minha pergunta ...
Se eu quisesse por filtros quando os usuários fossem fazer uma pesquisa.
Exemplo:
O usuário acessou a sessão "Moda e Acessórios", a categoria "Camisetas" e o atributo "Masculino", na página de pesquisa eu listo os filtros "Tamanhos = P, M, G, GG / Cor = Branca, Preta, Ciza ", etc...
Isso poderia ser feito em outro campo da tabela? Assim ficaria de uma forma mais genérica e eu poderia setar esses filtros no momento do cadastro de acordo com a categoria, não? Se não eu teria que criar uma tabela para cada tipo de produto, não?
array[
'id' => '1',
'sessao' => 'Moda e acessórios',
'categoria' => 'Camisetas',
'atributo' => 'Masculino'
'filtros' => 'Tamanho=P, Cor=Preta, etc...',
'nome => 'Camiseta Cavalera Estampada',
]
Desde já agradeço a sua atenção meu camarada, abraço!
Pode ser feito sim.
Mas existem alguns cuidados interessantes na modelagem de dados.
Você está no caminho certo, sugiro essa leitura interessante sobre a "normalização de banco de dados"
http://pt.slideshare.net/LP0956/normalizao-banco-de-dados
http://imasters.com.br/artigo/7020/banco-de-dados/modelagem-de-dados-final-normalizacao
Sei que parece complicado, mas a NORMALIZAÇÃO DE BANDO DE DADOS, vai ajudar e elaborar bem a sua base e você não terá problemas estruturais num futuro.
Se conseguir absorver esse conteúdo, sua base ficará flexivel, coesa e altamente expansível sem gerar problema no que já estará funcionando.
Grande abraço!
Ahhh, valeu cara ...
Obrigado pela sua atenção, irei estudar um pouco mais sobre "normalização de banco de dados".
Um forte abraço, obrigado!
pq você precisa ter tantos níveis?