Estrutura de banco de dados para lidar com múltiplas contas (arquitetura de dados multilocatário)?

Estrutura de banco de dados para lidar com múltiplas contas (arquitetura de dados multilocatário)?

É sempre fácil escrever software que lide com uma única entidade. No entanto, projetar software para lidar com múltiplas contas/empresas requer a devida diligência.

Atualmente estou fazendo uma pesquisa inicial sobre esquemas de banco de dados que lidam com várias contas/empresas e estou perguntando se você pode compartilhar uma página da web ou software de código aberto que demonstre o esquema adequado.

Editar:Consegui encontrar a terminologia apropriada para isso, que é Arquitetura de dados multilocatário. Um artigo útil da Microsoft que descreve a abordagem:http://msdn.microsoft.com/en-us/library/aa479086.aspx

Obrigado.

Responder1

Isto é apenas um pouco mais complicado do que uma "entidade única". Vamos supor o pior caso - várias empresas, cada uma com várias contas. Uma mesa para empresas. Uma tabela para contas com chave estrangeira do ID da Empresa. Então cada transação possui a chave estrangeira do ID da conta. Para todos os outros dados, você precisa decidir se pertencem a uma empresa, uma conta ou alguma outra. Ou seja, funcionários só podem trabalhar para uma Empresa (em geral), portanto o Funcionário possui o ID da Empresa como chave estrangeira. Uma divisão estaria em uma empresa, no mesmo relacionamento.

É tudo uma questão de entender o que pertence a quem e estabelecer o relacionamento. Isso pode parecer muito simplista, mas isso é tudo.

Procurar usar algum esquema estabelecido pode poupar muito esforço, mas é esse esforço que garante um bom resultado. Um bom design de banco de dados vem de fazer TODAS as perguntas - "Um funcionário pode trabalhar em mais de uma divisão?" “As compras são sempre cobradas de um departamento ou o custo pode ser distribuído?” "Precisamos acompanhar mais de uma aprovação para uma reatribuição de funcionário?" Isso dura para sempre, mas se você não fizer isso, seu sistema decepcionará constantemente os usuários e exigirá modificações infinitas.

informação relacionada