sistema multi empresa (relacionamentos das tabelas de usuário)

187 views
Skip to first unread message

Fabrício S. M.

unread,
Nov 20, 2015, 6:24:08 AM11/20/15
to Django Brasil
Em um sistema multi empresa com login de colaboradores e clientes, como vocês sugerem fazer os relacionamentos dos usuários?
Para se logar quero usar nome de usuário e senha.

Estava elaborando...
[Usuario(AbstractBaseUser)] <-- [Pessoa] <-- [Cliente] e [Colaborador]
    |
    v
[empresa]

Cliente e colaborador herdam de pessoa. Pessoa herda de usuário. Usuário está relacionado a empresa.

Pensei em fazer o login de cliente por cpf para ficar mais prárico. Mas não vai dar certo. Pois se o cliente tiver cadastro em várias empresas o nome de usuário não será aceito. É unique.
Outra maneira seria criar o nome de usuário com base na id de cadastro. Exemplo "C0001", "C0002", .... nesse caso daria certo. Mas o cliente teria um login para cada empresa onde tivesse cadastro. Acho essa a opção mais viável.

Alguma ajuda?
Obrigado!

Rodrigo Otávio Passos Ferreira

unread,
Nov 20, 2015, 6:32:13 AM11/20/15
to django...@googlegroups.com

Nao colocaria empresa dentro do usuario, mais facil uma tabela de relacionamentos id_usuario - id_empresa, fica mais facil de manipular usuarios com varias empresas. E mantem um certo nivel de atomicidade no usuario rs.

 

Eu faria o login por CPF (ou e-mail), E empresa, tendo que selecionar a

empresa e informar o cpf. Veja que a não ser que force o usuário a ter um login diferente pra cada empresa, não terá como fugir de selecionar a empresa na hora do login.

signature.asc

Fabrício S. M.

unread,
Nov 20, 2015, 12:01:05 PM11/20/15
to Django Brasil
Certo... vou dar uma analisada no que comentou...
Quando me refiro a multi empresas seriam empresas independentes uma da outra. Ou seja, não são filiais.
É melhor usar apenas uma base de dados mesmo ou ter base diferente?
Estou no caminho certo?
Valeu!

Rui Matos

unread,
Nov 21, 2015, 10:07:43 AM11/21/15
to Django Brasil

Analisando suas informações descrita. Não ficou claro o número de acessos e transações no banco de dados.

Acredito que você dividir as app para empresas diferentes irá resolver seu problema se não tem muitos acessos simultâneos.Agora, um outro banco se notar que irá atrapalhar o servidor de banco de dados.
Então é o momento de dividir os bancos de dados para cada empresa. Já que o servidor que vc tem não vai suportar a alta quantidade de acessos simultâneos. Somente alguns dados são necessários está compartilhado entre as empresas e estes dados não vão ser usado frequentemente.
Reply all
Reply to author
Forward
0 new messages