Seguinte, eu estou reformulando um sistema. Como atualmente eu dou um arquivo para cada categoria e está ficando ruim criar novas categorias (são mais de 17 categorias), eu estou tendo que mudar minha lógica.
Assim.
Eu tenho uma área, que pode ser a X. Dentro da área X, eu poderia criar categorias, que poderiam ser Y, Z, W, A, B.
Até ai eu consigo fazer.
Quando eu coloco um item numa categoria (nas áreas não será permitido, as áreas serão somente para separar as categorias no menu, pois cada área terá categorias diferentes. É como se fosse a área de programação e a de design aqui do fórum), eu salvo num campo chamado categoria, a ID da categoria. Aí na hora de exibir, eu pego todos os itens que contêm essa ID.
Agora... Eu vou precisar criar subcategorias. Aí que está o problema.
As subcategorias devem ficar obrigatoriamente, dentro das categorias. Pensei numa tabela separada, ok. Mas o item só pode ficar num único lugar, ou seja, ou numa categoria ou numa subcategoria, e não nos dois ao mesmo tempo. Aí, na hora de salvar, se eu criar uma tabela para as subcategorias, pode acontecer de o ID ser o mesmo. Por exemplo:
Categoria Y - ID 1
Subcategoria C - ID 1
Aí eu não saberia aonde o item está, poderia ser a categoria, como também a subcategoria. Esse que é o meu problema. E eu não sei como resolvê-lo. Alguma solução?
Outro problema que a solução mais óbvia para mim seria criar um campo, é o de que algumas categorias não irão aceitar itens, mas suas subcategorias irão.
Obrigado pela atenção,
Lógica De Banco De Dados - Problema
Started By Inu, 15/03/2008, 13:43
5 replies to this topic
#1
Posted 15/03/2008, 13:43
#2
Posted 19/03/2008, 16:44
Ninguém? =/
#3
Posted 19/03/2008, 16:49
Cara, sem sacanagem nenhuma (juro), dá pra desenhar? =P
hehehe
Olha, não entendi porque você não pode criar uma chave composta por categoria + item+subitem.
hehehe
Olha, não entendi porque você não pode criar uma chave composta por categoria + item+subitem.
#4
Posted 19/03/2008, 20:38
Grande Inu
Eu acho que entendi tua dúvida mas tem muitas informações vagas e fica difícil explicar com certeza.
Seria interessante você postar a estrutura dessas tabelas.
Grande abraço
Valeu
Eu acho que entendi tua dúvida mas tem muitas informações vagas e fica difícil explicar com certeza.
Seria interessante você postar a estrutura dessas tabelas.
Grande abraço
Valeu
#5
Posted 19/03/2008, 21:19
Exemplificando...
Quando eu salvo o conteúdo, ele salva o ID da categoria em que será criado.
Aí, como eu pretendo fazer as categorias por banco de dados, para facilitar... Vou dividi-las assim:
Área: onde ficará a categoria. Por exemplo, este tópico está na área de banco de dados.
Categoria: a categoria propriamente dita.
Aí, há categorias que necessitarão de subcategorias, ou seja, categoria dentro de categoria. Aí que reina meu problema, pois eu não sei como criar a database para as subcategorias, já que salvo o ID da categoria. Imaginem que a categoria 5 tem uma subcategoria 1. E eu salvo o 1, não terei como saber aonde pesquisar.
E a área, estou fazendo assim:
Obrigado.
Quando eu salvo o conteúdo, ele salva o ID da categoria em que será criado.
CREATE TABLE `conteudo` ( `id` int(25) NOT NULL auto_increment, `tipo` int(5) NOT NULL default '0', `conteudo` text NOT NULL, `autor` int(75) NOT NULL default '0', `titulo` text NOT NULL, `aprovado` int(1) NOT NULL default '0', `views` int(75) NOT NULL default '0', `datahora` datetime NOT NULL default '0000-00-00 00:00:00', `datahora_aprovacao` datetime NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (`id`) ) ENGINE=MyISAM;
Aí, como eu pretendo fazer as categorias por banco de dados, para facilitar... Vou dividi-las assim:
Área: onde ficará a categoria. Por exemplo, este tópico está na área de banco de dados.
Categoria: a categoria propriamente dita.
Aí, há categorias que necessitarão de subcategorias, ou seja, categoria dentro de categoria. Aí que reina meu problema, pois eu não sei como criar a database para as subcategorias, já que salvo o ID da categoria. Imaginem que a categoria 5 tem uma subcategoria 1. E eu salvo o 1, não terei como saber aonde pesquisar.
E a área, estou fazendo assim:
CREATE TABLE `area` ( `id` int(10) NOT NULL auto_increment, `nome` TEXT NOT NULL default '', PRIMARY KEY (`id`) ) ENGINE=MyISAM;
Obrigado.
#6
Posted 06/04/2008, 17:09
Ninguém?
0 user(s) are reading this topic
0 membro(s), 0 visitante(s) e 0 membros anônimo(s)