Jump to content
He B TeMy

Dúvida na estruturação de uma Base de Dados

Recommended Posts

He B TeMy

Boa tarde, estou a fazer uma gestão de um restaurante em vb.net e estou com umas dúvidas...

O que têm no menu são os produtos para o consumidor final, tipo: "Frango assado", "Bife" etc...

A minha dúvida é, na base de dados eu terei que ter uma tabela de ingredientes também?

Porque frango assado não leva só o frango... e eu teria de ao clicar retirar do stock frango + batata + arroz + o que seja por assim dizer.

Dúvida é se terei de fazer duas tabelas, (Uma para o que está no menu e outra para os ingredientes em geral) E se eu consigo em Access fazer com que ao retirar um produto duma tabela, ele me descontasse noutra tabela outros produtos.

Alguém me consegue ajudar?

Muito obrigado.

Share this post


Link to post
Share on other sites
nelsonr

Normalmente tens a tabela dos produtos e talvez uma propriedade a indicar se é menu.

Se for menu, tens outra tabela que terá o ID do produto menu e depois o ID dos produtos relacionados (1->N).

Para atualizar o stock, quando fores retirar o stock de um artigo, se for do tipo menu, retiras tambem de todos os produtos relacionados

Share this post


Link to post
Share on other sites
He B TeMy

Mas é correcto pôr na mesma tabela produtos tipo que acompanham os pratos principais e os pratos principais em si?

Tipo batata junto com "prego no prato" que suponhamos que leva batata?

Não sei se me expliquei bem, ou pela tua ideia estás a falar em ter três tabelas?

Uma para ingredientes, (tudo) outra para o que têm no menu, e outra a indicar se é menu?

Share this post


Link to post
Share on other sites
nelsonr

Boas,

não vejo problema nenhum em ter o "prego no prato" na mesma tabela que a "batata".

Até facilita, visto ambos terem as mesmas propriedades (preços, stocks, taxas, etc).

O produto menu é que tem alguma informação extra (produtos relacionados).

A meu ver apenas precisas de 2, produtos e composicaomenu. Exemplo:

Produtos

ID, nome, menu, preço

1, "Batata", false, 0.40€

2, "Ovo", false, 0.70€

3, "Bife", false, 2.50€

4, "Prego no prato", true, 5€

ComposicaoMenu

ID, IDProdutoPrincipal, IDProdutoRelacionado

1, 4, 1

2, 4, 2

3, 4, 3

Share this post


Link to post
Share on other sites
He B TeMy

Acho que não me expliquei bem.

Só os que tão no menu, é que têm preço (estão para venda) os outros são produtos que estão dentro desse prato...

Estamos a falar preço para o consumidor, não o preço que "eu" pago por eles... ainda não inclui isso...

Se eu estiver a fazer confusão peço desculpa.

Edited by He B Te My

Share this post


Link to post
Share on other sites
nelsonr

Então podes por mais um campo a indicar se permite venda directa.

E se por exemplo, pedirem um prego no prato e depois um ovo extra?

Share this post


Link to post
Share on other sites
cdaniel.marques

Uma sugestão: na tabela dos pratos, crias um campo ingrediente(x) e quantidade por cada ingrediente.

ID Prato Menu Preço ingrediente1 quantidade1 ingrediente2 quantidade2 ingrediente3 quantidade3

1 "Bitoque" True 5,5€ "bife" 1 "batata" 200 "ovo" 1

2 "Hamburger no Prato" True 5€ "hamburger" 1 "arroz" 200 "batata" 200

Assim podes abater no stock na tabela dos ingredientes, na altura da compra do prato.

ID Ingrediente UnidadeMedida StockDisponivel

1 "bife" un 10

2 "hamburger" un 7

3 "arroz" gr 3000

4 "batata" gr 5750

...

E depois adiciona um Form para abater produtos Extra, que apresente os os ingredientes e podes abater mais uma unidade.

Edited by cdaniel.marques

Share this post


Link to post
Share on other sites
He B TeMy

Uma sugestão: na tabela dos pratos, crias um campo ingrediente(x) e quantidade por cada ingrediente.

ID, Prato, menu, preço, ingrediente1, quantidade, ingrediente2, quantidade

1, "Bitoque", false, 0.40€, "bife", 1, "batata", 200, "ovo", 1

2, "Hamburger no Prato", true, 5€, "hamburger", 1, "arroz", 200, "batata", 200

Assim podes abater no stock na tabela dos ingredientes, na altura da compra do prato.

E depois adiciona um Form para abater produtos Extra, que apresente os os ingredientes e podes abater mais uma unidade.

Tenho que ver melhor isso, não estou muito habituado a trabalhar com base de dados (Access)...

Era exactamente como puseste aí ? "Ingrediente1" "Ingrediente2", punha assim? (Com os nomes deles como é obvio acho eu.)

nelsonr, pois, nesse caso teria que fazer uma groupbox, com os acompanhantes dos pratos principais que também daria para venda directa.

Share this post


Link to post
Share on other sites
cdaniel.marques

Tenho que ver melhor isso, não estou muito habituado a trabalhar com base de dados (Access)...

Era exactamente como puseste aí ? "Ingrediente1" "Ingrediente2", punha assim? (Com os nomes deles como é obvio acho eu.)

Se colocares Ingrediente(x) na tabela do access, tens a liberdade criar os ingredientes no programa.

Se fizeres como estas a dizer, também podes fazer, mas cada vez que adicionares um prato com um ingrediente novo, implica alteração de código: terias de alterar adicionar uma coluna à tabela na base de dados, e alterar o código do programa para procurar a nova coluna.

PS: Corrigi a estrutura q tinha no Post #7

Edited by cdaniel.marques

Share this post


Link to post
Share on other sites
He B TeMy

Se colocares Ingrediente(x) na tabela do access, tens a liberdade criar os ingredientes no programa.

Se fizeres como estas a dizer, também podes fazer, mas cada vez que adicionares um prato com um ingrediente novo, implica alteração de código: terias de alterar adicionar uma coluna à tabela na base de dados, e alterar o código do programa para procurar a nova coluna.

PS: Corrigi a estrutura q tinha no Post #7

Já vi, muito obrigado.

Mas como consigo adicionar ingredientes com o ingrediente(x) no programa?

Não tou a perceber bem, isso é basicamente adicionar colunas com o nome do ingrediente novo?

Obrigado.

Edited by He B Te My

Share this post


Link to post
Share on other sites
cdaniel.marques

Boa tarde, estou a fazer uma gestão de um restaurante em vb.net e estou com umas dúvidas...

Se estás a fazer o programa em VB.NET, consegues fazer alterações à base de dados:

Adicionar registos a tabelas, editar registos e eliminar, apartir do programa que estás a construir.

Imaginado que já tens um Form para escolher o prato e fazer a venda, terás de adicionar dois Forms de configuração, que irão ser utilizados por exemplo pelo gestor do restaurante:

- Um para gerir ingredientes.(Adicionar, Editar, Eliminar)

- Outro para gerir os pratos.

Neste Form, adicionas por exemplo uma caixa de texto para nome prato, preço, etc e depois duas text box's, ingrediente(x) e um quantidade(x), para cada um dos ingredientes. (igual ao numero de colunas que tens na base de dados, seja 10 por exemplo)

Assim, quando fizesses gravar o prato, irias correr um instrução SQL, deste genero, tendo em conta o exemplo acima:

"INSERT INTO tabelapratos VALUES ('Hamburger no Prato', '5', 'hamburger', '1', 'batatas', '200', 'arroz', '150', ...)

Na altura da venda, procuras pelo prato escolhido cada um dos ingredientes que estiver preenchido (instrução ou instruções SQL para ler registo base dados) e subtrais (instrucao para editar registo) ao Stock do Ingrediente (tabela ingredientes) a quantidade(x) usada no prato, para cada um dos ingredientes.

Em VB adicionas registos. As colunas devem ser adicionadas no Access.

Edited by cdaniel.marques

Share this post


Link to post
Share on other sites
He B TeMy

Sim, eu entendo e estou a finalizar isso tudo.

Quanto no vb não adicionar colunas, e se algum dia fosse preciso mais uma coluna de ingredientes? Sem tar eu a adicionar um número "monstruoso" de colunas de ingredientes... não seria melhor dar para adicionar outras colunas? Mas sim, eu entendo isso.

Share this post


Link to post
Share on other sites
nelsonr

Não era bem mais simples teres um registo para cada... isso vai dar tudo ao mesmo... produtos

Edited by nelsonr

Share this post


Link to post
Share on other sites
He B TeMy

Não era bem mais simples teres um registo para cada... isso vai dar tudo ao mesmo... produtos

E não foi o que eu disse? Tabela produtos conter tudo o que vai no menu (ser vendido no restaurante) e depois Tabela ingredientes com tudo o que é usado.

Estou certo não estou?

Share this post


Link to post
Share on other sites
nelsonr

E porque separas os ingredientes dos produtos?

Porque é que um ovo junto do menu (ingrediente) é diferente de um ovo que é adicionado ao menu (extra) e é diferente de um ovo vendido sozinho (produto)

Outro exemplo, o menu pode conter uma bebida (ingrediente) e podes vender a bebida à parte (produto).

Teres isso separado só causa confusão. Tanto tens de tirar do stock uma coca-cola que é vendida no menu, como uma coca-cola vendida sozinha

Share this post


Link to post
Share on other sites
He B TeMy

E porque separas os ingredientes dos produtos?

Porque é que um ovo junto do menu (ingrediente) é diferente de um ovo que é adicionado ao menu (extra) e é diferente de um ovo vendido sozinho (produto)

Outro exemplo, o menu pode conter uma bebida (ingrediente) e podes vender a bebida à parte (produto).

Teres isso separado só causa confusão. Tanto tens de tirar do stock uma coca-cola que é vendida no menu, como uma coca-cola vendida sozinha

Porque o que têm no menu é constituido pelos seus ingredientes, que eu interligava e retirava do stock as quantidades respectivas para cada um... estou só a pensar se não seria melhor.

Quanto a ser vendido, neste caso, só será para venda tudo o que tiver no menu, lá, se esta ideia for para a frente vai ter também os acompanhamentos (que pode já vir com alguns dos pratos mas se quiser outro pode vir sozinho sem ser preciso pedir outra vez o prato completo).

Estou só a pensar... ajudas são bem-vindas.

Share this post


Link to post
Share on other sites
acao

Não era bem mais simples teres um registo para cada... isso vai dar tudo ao mesmo... produtos

concordo plenamente, basedados mais efeciente.

cumps

acao

Share this post


Link to post
Share on other sites
He B TeMy

Então como separo ingredientes que fazem os produtos dos produtos do menu?

Acham melhor fazer uma coluna com "Menu" e por "Sim" ou "Não" em cada um dos "produtos"?

Share this post


Link to post
Share on other sites
nelsonr

Dei-te um exemplo no #4.

Julgo ser a melhor forma de implementares o que pretendes, permitindo facilmente definires menus, vender produtos sozinhos ou como ingredientes, e sem ter de alterar a estrutura se quiseres adicionar mais ingredientes mais tarde.

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.