AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 1183
Accepted
fa1c0n3r
fa1c0n3r
Asked: 2011-02-12 19:19:33 +0800 CST2011-02-12 19:19:33 +0800 CST 2011-02-12 19:19:33 +0800 CST

Exemplos de procedimentos de transação SQL para rastreamento de vendas ou um banco de dados financeiro

  • 772

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:

  1. o vendedor cria um novo produto enviado ao chão (itemmpk, marca do carro, ano, preço).
  2. vendedor muda de preço.  
  3. vendedor cria entrada de venda para produto vendido (salespk, itemforeignkey, preço vendido, vendedor).  
  4. vendedor cancela item para produto removido.  
  5. 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.

sql-server database-design
  • 4 4 respostas
  • 4661 Views

4 respostas

  • Voted
  1. Best Answer
    mrdenny
    2011-02-12T20:02:45+08:002011-02-12T20:02:45+08:00

    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.

    • 5
  2. MarlonRibunal
    2011-02-13T00:56:22+08:002011-02-13T00:56:22+08:00

    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.

    • 4
  3. Marek Grzenkowicz
    2011-02-14T03:44:32+08:002011-02-14T03:44:32+08:00

    Um exemplo financeiro clássico é a transferência bancária de fundos :

    BEGIN TRANSACTION;
      UPDATE Account SET amount=amount-200 WHERE account_number=1234;
      UPDATE Account SET amount=amount+200 WHERE account_number=2345;
    IF ERRORS=0 COMMIT;
    IF ERRORS<>0 ROLLBACK;
    

    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.

    • 4
  4. Chris Travers
    2012-09-03T00:56:19+08:002012-09-03T00:56:19+08:00

    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.

    • 4

relate perguntas

  • Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?

  • Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?

  • Quais são as principais causas de deadlocks e podem ser evitadas?

  • Quais são algumas maneiras de implementar um relacionamento muitos-para-muitos em um data warehouse?

  • Como determinar se um Índice é necessário ou necessário

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Como você mostra o SQL em execução em um banco de dados Oracle?

    • 2 respostas
  • Marko Smith

    Como selecionar a primeira linha de cada grupo?

    • 6 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Posso ver Consultas Históricas executadas em um banco de dados SQL Server?

    • 6 respostas
  • Marko Smith

    Como uso currval() no PostgreSQL para obter o último id inserido?

    • 10 respostas
  • Marko Smith

    Como executar o psql no Mac OS X?

    • 11 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Marko Smith

    Passando parâmetros de array para um procedimento armazenado

    • 12 respostas
  • Martin Hope
    Manuel Leduc Restrição exclusiva de várias colunas do PostgreSQL e valores NULL 2011-12-28 01:10:21 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Stuart Blackler Quando uma chave primária deve ser declarada sem cluster? 2011-11-11 13:31:59 +0800 CST
  • Martin Hope
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST
  • Martin Hope
    BrunoLM Guid vs INT - Qual é melhor como chave primária? 2011-01-05 23:46:34 +0800 CST
  • Martin Hope
    bernd_k Quando devo usar uma restrição exclusiva em vez de um índice exclusivo? 2011-01-05 02:32:27 +0800 CST
  • Martin Hope
    Patrick Como posso otimizar um mysqldump de um banco de dados grande? 2011-01-04 13:13:48 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve