Boa tarde,

Estou desenvolvendo algumas modelagens de dados para aprimorar meus
conhecimentos no assunto. Algumas das dúvidas já consegui sanar lendo
artigos publicados na internet, mas este ainda me deixa na dúvida.
O caso é uma pizzaria. Tem produtos "normais" como bebidas, onde o produto é
vendido e cobrado de acordo com seu preço.

Um exemplo de modelagem simplificado para isso é:

Tabela de produtos
- id produto
- nome do produto
- preço
Tabela de compra
- id compra
- id cliente
- valor total
Tabela de produtos de uma compra
- id compra
- id produto
- quantidade
- valor unitario

Sendo assim eu tenho na tabela "Tabela de produtos de uma compra" um
histórico do que foi comprado em cada compra assim como os preços na hora da
compra. Até então tudo bem, mas no caso de uma pizza, temos a possibilidade
de uma pizza ser de um só sabor (produto) ou meio-a-meio, mussalera e
calabresa por exemplo.
Qual é a forma mais eficaz de armazenar isso no banco de dados?
Eu tenho duas ideias na cabeça.
1- Inserir cada pizza como um produto e permitir que vários produtos se unam
para formar um item de uma compra
2- Fazer tabelas completamente separadas para isso, mantendo o diagrama
principal para os produtos "normais" e adicionando uma tabela separada para
pizzas que permite misturas diversas para formar um produto.

Exemplo da idéia 1:

Tabela de produtos
- id produto
- nome do produto
- preço
Tabela de compra
- id compra
- id cliente
- valor total
Tabela de produtos de um item de uma compra
- id produto
- id item da compra
- percentual do item (esse campo diria por exemplo 50% caso fosse uma pizza
meio a meio e 100% caso fosse apenas um sabor)
Tabela de produtos de uma compra
- id item da compra
- id compra
- quantidade
- valor unitario
Exemplo da idéia 2:

Tabela de produtos
- id produto
- nome do produto
- preço
Tabela de compra
- id compra
- id cliente
- valor total
Tabela de produtos de uma compra
- id compra
- id produto
- quantidade
- valor unitario
Tabela de pizzas
- id pizza
- nome da pizza
- preço
Tabela de pizzas para um item de compra
- id pizza
- id pizza da compra
- percentual da pizza
Tabela de produtos de uma compra
- id pizza da compra
- id compra
- quantidade
- valor unitario
--

Pela experiencia de vocês, qual é a melhor solução do ponto de vista
conceitual e qual a melhor do ponto de vista teórico e porque?
Na segunda idéia de modelagem, se houver mais produtos "estranhos" como por
exemplo sanduíches que são cobrados por cada sabor adicionado, teríamos que
adicionar mais tabelas, esse tipo de solução é usual na prática?

Obrigado.

-- 
Rúben Lício Reis
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a