Jump to content


Photo

Lógica De Banco De Dados - Problema


  • Faça o login para participar
5 replies to this topic

#1 Inu

Inu

    Veterano

  • Usuários
  • 1138 posts
  • Sexo:Masculino
  • Localidade:Canela, Rio Grande do Sul, Brasil

Posted 15/03/2008, 13:43

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 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,

#2 Inu

Inu

    Veterano

  • Usuários
  • 1138 posts
  • Sexo:Masculino
  • Localidade:Canela, Rio Grande do Sul, Brasil

Posted 19/03/2008, 16:44

Ninguém? =/

#3 boirock

boirock

    Tecnologia para todos (agora hexa campeão)

  • Usuários
  • 1559 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR
  • Interesses:PostgreSQL - PHP

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.

#4 xuxa gremista

xuxa gremista

    Turista

  • Usuários
  • 51 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre - RS

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

#5 Inu

Inu

    Veterano

  • Usuários
  • 1138 posts
  • Sexo:Masculino
  • Localidade:Canela, Rio Grande do Sul, Brasil

Posted 19/03/2008, 21:19

Exemplificando...
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 Inu

Inu

    Veterano

  • Usuários
  • 1138 posts
  • Sexo:Masculino
  • Localidade:Canela, Rio Grande do Sul, Brasil

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)

IPB Skin By Virteq