Estou projetando um banco de dados para um aplicativo, no qual preciso considerar o COMPRADOR (BUYER_ID) e o VENDOR (VENDOR_ID) como um USUÁRIO (USER_ID). Eu projetei essa lógica em um design a seguir.
DO UTILIZADOR
User_ID (PK), BUYER_ID(FK), VENDOR_ID(FK).
Estou confuso, se este é um bom método, considerando as seguintes coisas,
- O comprador pode ser um vendedor.
- O fornecedor também pode ser um comprador.
Eu criei a tabela USERROLE para conseguir isso, mas quando um usuário é apenas um comprador ou fornecedor, a tabela de relacionamento mencionada acima funcionará? Isso aceitará a chave estrangeira como NULL?
Preciso da explicação para isso - "Um pedido pode ser feito por um comprador ou fornecedor, mas um único pedido não pode ser feito pelo comprador e pelo fornecedor ao mesmo tempo" . Desde já, obrigado.
Brinque com isso aqui: http://sqlfiddle.com/#!15/a76fd/2
Partindo do princípio que o
userId
se refere ao vendedor ou comprador, esta concepção permiteuserId
ser simultaneamente comprador e vendedor. Quando um pedido é feito, você simplesmente precisaJOIN
nas tabelasvendor
ebuyer
para garantir queuserId
não exista em ambos.