jfosorio Posted May 31, 2012 at 09:54 AM Report #459353 Posted May 31, 2012 at 09:54 AM Bom dia, O meu problema é o seguinte: estou a construir uma base de dados para armazenar produtos. Os produtos têm categorias, e podem ter n sub-categorias. Já fiz bases de dados em que tinha as entidades produtos, categorias e subcategorias. Relacionava os produtos com uma subcategoria, que por sua vez se relacionava com uma categoria. Desta forma, o produto estava sempre associado à entidade sub-categoria. Mas agora, o problema que se coloca é que um produto pode ter 0, 1 ou n subcategorias. Isto está a fazer-me confusão, porque no modelo relacional, se tenho uma tabela com os atributos id_produto, produto, id_subcategoria (chave estrangeira), não posso ter produtos com uma subcategoria, e outros não. Alguém tem alguma sugestão para ultrapassar este problema? CSS 3D Text - Partilha mensagens em 3D com os teus amigos no Facebook! Portal de Informática it4life - Emprego, notícias, fórum, comunidade.
HappyHippyHippo Posted May 31, 2012 at 10:04 AM Report #459361 Posted May 31, 2012 at 10:04 AM no modelo relacional tens: ---------------- + Categoria ---------------- id_categoria nome ---------------- ---------------- + SubCategoria ---------------- id_sub_categoria id_categoria nome ---------------- ---------------- + Produto ---------------- id_produto nome ---------------- ---------------- + Relação Produto-SubCategorias ---------------- id_produto id_sub_categoria ---------------- IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
jfosorio Posted May 31, 2012 at 10:10 AM Author Report #459366 Posted May 31, 2012 at 10:10 AM Pois. Eu entendi o ponto de vista, mas acho que me expressei mal. Os produtos podem ter diferentes níveis de subcategorias. Por exemplo: Produto -> SubSubCat_1 -> SubCat_1 -> Cat_1 Produto -> Cat_2 Produto -> SubCat_2 -> Cat_2 Penso que encontrei uma solução que passa por criar apenas uma tabela de categorias. Cada categoria tem um pai. Se o pai já tiver um pai, então trata-se de uma subsubcategoria, e por aí fora. Penso que dá para entender a ideia. As listagens são feitas recursivamente, de forma a estruturar corretamente os diferentes níveis. A tabela das categorias será algo do género: id_categoria id_pai categoria 1 0 categoria_1 2 1 sub-categoria_1 3 2 sub-sub-categoria_1 4 3 sub-sub-sub-categoria_1 A categoria com o id 4 aponta para a categoria com o id 3, que é subcategoria da categoria 2, que é subcategoria da categoria 1. Penso que dá para entender a ideia. CSS 3D Text - Partilha mensagens em 3D com os teus amigos no Facebook! Portal de Informática it4life - Emprego, notícias, fórum, comunidade.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now