Estou criando um banco de dados para um sistema do tipo contabilidade/vendas semelhante a um banco de dados de vendas de carros e gostaria de fazer algumas transações para as seguintes ações do mundo real:
- o vendedor cria um novo produto enviado ao chão (itemmpk, marca do carro, ano, preço).
- vendedor muda de preço.
- vendedor cria entrada de venda para produto vendido (salespk, itemforeignkey, preço vendido, vendedor).
- vendedor cancela item para produto removido.
vendedor cancela venda para venda cancelada.
Os exemplos que encontrei online são muito genéricos, como "isto é uma transação", gostaria de algo parecido com o que estou tentando fazer para entender.
Alguém tem alguns bons exemplos de SQL semelhantes ou relacionados que eu possa ver para projetá-los? As pessoas usam transações para bancos de dados de vendas? Ou se você já fez esse tipo de transação sql antes, poderia fazer um esboço de como isso poderia ser feito?
Meu tópico (fechado como não é uma pergunta real) até agora no estouro de pilha: Precisa de procedimentos de transação SQL de exemplo para rastreamento de vendas ou banco de dados financeiro
Última atualização, o usuário enviará novas entradas/alterações/e cancelamentos do aplicativo ac#. Dados de aplicativos:
Produtos em exibição (este é o nó pai que possui 3 nós filhos)
Vendas (nó filho de Produtos em exibição)
Recursos personalizados do produto (nó filho de produtos em exibição)
Preço do produto / status atual (nó filho de Produtos em exibição)
O aplicativo C # empacotará esses dados no formato XML e, em seguida, executará alguns procedimentos armazenados SQL com transações que mantêm juntas as conversões xml para tabela nas tabelas SQL projetadas com a mesma estrutura de nó pai/filho usando algo como o que é descrito pelas respostas a isso relacionado pergunta sobre Stack Overflow: https://stackoverflow.com/q/2756773/613799
Eu gostaria que houvesse um livro sobre como projetar bancos de dados de vendas multiusuário e as transações de procedimento armazenado que serão usadas pelos aplicativos de usuário relacionados a partir do zero app->xml->database. Por favor, deixe-me saber se você sabe de um bom, ou um capítulo de um livro.
Dependendo da complexidade do design do banco de dados, você provavelmente precisará usar transações para manter a consistência dos dados entre as tabelas à medida que altera os dados no sistema.
Qualquer exemplo seria muito básico, pois cada esquema de banco de dados seria diferente. É aqui que ter um banco de dados ou arquiteto de dados é útil para um projeto.
Você pode querer usar este modelo de dados da Concessionária de Carros . Este modelo lhe dará uma ideia de quais transações são necessárias para seus requisitos de negócios.
Um exemplo financeiro clássico é a transferência bancária de fundos :
A menos que você possa postar uma descrição detalhada de algum processo em seu aplicativo e o esquema do banco de dados , exemplos genéricos como este são tudo o que podemos fornecer.
Sim, use transações. Você está inserindo registros em várias tabelas e deseja garantir que todos eles sejam inseridos de acordo. Não há realmente nenhuma razão para não fazê-lo.
A outra coisa a observar é que a maioria dos bancos de dados financeiros (incluindo meu projeto principal, LedgerSMB ) usa o que chamo de instantâneo, log e modelo de agregação em que você quase sempre lida com dados somente anexados na maior parte. Você realmente quer ter certeza de que tudo está indo corretamente.