Pelo que posso ver, o design do banco de dados é semelhante.
Um deles são os consumíveis residentes em um depósito (estoque). Os demais são itens, capitais, que são atribuídos a pessoas ou lugares, mas não são consumíveis (bens).
Para o design do banco de dados, isso soa como o caminho certo para começar?
LedgerSMB , que é meu projeto principal, faz as duas coisas. Acho que não vamos fundi-los e a explicação do porquê pode lhe dar uma resposta.
A diferença que você precisa entender é que, se você está tentando fazer as duas coisas, provavelmente está tentando fazer a contabilidade de ambas. As questões contábeis são diferentes e exigem que coisas diferentes sejam rastreadas. Há espaço para centralizar algumas informações, mas outras também não podem ser tratadas.
Vejamos os itens de fluxo em ambos os sistemas.
Você compra 10 widgets para inventário por US$ 10 cada. O que você precisa rastrear depende de como você avalia seu inventário. Se for FIFO ou LIFO, você terá que rastrear o aspecto financeiro da transação ($ 100 de débito em estoque, $ 100 de crédito em contas a pagar) e para o custo médio, você terá que rastrear também o custo médio por item. À medida que um item é vendido, você deve registrar receitas e contas a receber, mas também move o valor do estoque para sua conta de custo de mercadorias vendidas. A modelagem desse processo realmente define um sistema de estoque utilizável.
Um sistema de controle de ativos é diferente. Suponha que você compre 100 mesas por US$ 50 cada. Em seguida, você os usa por no mínimo cinco anos e deprecia usando algum método (muitos métodos são aceitáveis) durante esse período. Este exemplo usará linha reta. Para fazer isso corretamente, você também deve rastrear a data do serviço, o valor estimado do resgate (neste caso, US$ 0, se pretendemos doar no descarte), etc. ano usando linha reta). Depois disso, o ativo será totalmente depreciado, mas ainda em serviço e não teremos mais transações para a peça até a alienação. Quando descartamos, mesmo que por $ 0 em um item totalmente depreciado, ainda teremos outra transação financeira contabilizando isso.
Eu sei que no LedgerSMB, nosso lado de gerenciamento de ativos é mais complexo do que nosso lado de gerenciamento de estoque.
Portanto, seu design tem muito menos a ver com a natureza do que está sendo armazenado e muito mais a ver com os processos de negócios aos quais você deve dar suporte, os requisitos de contabilidade e assim por diante. Isso significa que você precisa rastrear diferentes informações e esperar diferentes fluxos de coisas em seu sistema.
Espero que isto ajude. Uma coisa que eu recomendo é que você faça uma de duas coisas, no entanto. Contrate um consultor (eu! Não há conflito de interesses ;-)) ou pegue um livro sobre contabilidade. Se você deseja oferecer suporte a fluxos de trabalho de contabilidade, deseja conhecer o básico o suficiente para ter uma conversa inteligente com o pessoal das finanças. O conhecimento do domínio aqui é realmente importante porque esta é uma área que parece muito estranha para os não iniciados. Você não precisa saber tudo, mas deve ser capaz de sinalizar questões para conversar com os contadores. Entrei nisso por meio de um livro que comprei por US $ 2 em uma venda de garagem. É um campo vasto e você quer saber quais problemas humanos você está resolvendo e quais processos de negócios são aceitos.