Dúvida implementação Banco SQL

3 respostas
gustavofersilva

Estou criando um controle de produtos de uma empresa, no qual
precisamos gerar códigos sequenciais para os produtos a medida que forem
cadastrados, vendemos produtos digitais, logo não tem quantidade
física. A princípio pensei em utilizar um campo de auto incremento,
porém temos outro problema: Vendemos os produtos por pacotes, ou seja,
necessitaria de várias baixas simultâneas, pois de 1 em 1 não faria
muito sentido ou levaria mais tempo.
Também ouvi falar sobre a função SEQUENCE (Presente no PostgreSQL e em mais alguns SGBDs)

Qual seria a melhor sugestão para um banco de dados?

O que vocês me sugerem?

3 Respostas

rmendes08

E o que a baixa tem a ver com o cadastro ? São operações diferentes …

gustavofersilva

De fato são.
Mas estou com dúvidas em ambas.
O requisito é que cada unidade do produto tenha um código separado, pensei no mesmo ter um sufixo para facilitar na identificação e pensei em gerar esse código justo no cadastramento. Mas agora minha dúvida real é:
Como gerar vários códigos de uma vez? Vamos supor que quero entrar com 10 produtos e quero um código para cada um. Como eu geraria o mesmo sem ter de ser de 1 por 1?

Em relação a baixa/saída:

Como saio com esses 10 de uma vez, sem ter de dar saída de 1 por 1?

rmendes08

No banco de dados não tem jeito, as operações são sempre feitas uma por uma. É por isso que existe o conceito de transação em BD relacional, para você definir que um conjunto de operações são atômicas. Se existe o conceito de produto “pacote”, uma modelagem possível é você incluir um auto-relacionamento na tabela de produtos, de forma que os produtos que sejam parte de um pacote tenham a referência desse pacote. Por exemplo:

Produtos:
id | descricao | id_pacote 
---|-----------|----------
1  | pacote    |   NULL
2  | produto1  | 1
3  | produto2  | 1

E na hora de fazer a baixa, você recupera os itens que fazem parte do pacote e faz a baixa. Inclusive, isso é necessário para emitir nota fiscal. Da próxima vez que você for ao McDonalds e pedir um combo, repare no cupom fiscal. Cada produto (sanduíche, refri, batata) tem que vir discriminado no cupom

Criado 15 de setembro de 2016
Ultima resposta 15 de set. de 2016
Respostas 3
Participantes 2