Base de dados, modelo relacional

Tenho uma tabela que se chama QR-Code, este pode ser enviado tal por um funcionario, ou por um residente, mas na tabela Qr-code tem que ter somente um codigo de quem um enviou, como consigo representar isso no modelo relacional??

Tem algumas maneiras de fazer isso, mas uma idéia é ter as seguintes tabelas:

QRCode(id, id_enviador)
        ^ 
Enviadores(id) 
          ^                             ^
Residentes(id, id_enviador), Funcionarios(id, id_enviador)

Outra seria:

QRCode(id, id_enviador)
Enviadores(id, id_residente, id_funcionario) // check constraint para garantir apenas um é preenchido 
Residentes(id), 
Funcionarios(id)

Depende do que pode ou nao ser duplicado, de como vai acessar esses dados, etc.

1 curtida