2017-01-19 14:50 GMT-02:00 Alexsandro Haag <[email protected]>:
> Em 19/01/2017 13:27, Tiago José Adami escreveu:
>>
>> Fiquei em dúvida: como seria possível resolver este problema com
>> normalização? Em todas as vezes que me deparei com este tipo de
>> situação resolvi com restrições. Poderia dar um exemplo - mesmo que
>> simplório - para compartilhar conosco? Seria de muito valor!
>
> Olá Tiago, creio que separando esta informação em uma tabela complementar,
> que seria alimentada de acordo com a regra de negócio citada.

Olá, Alexsandro!

Apesar do OP ter satisfeito sua necessidade, vou insistir nesta
questão. Não consegui visualizar como 'obrigar' através de uma tabela
complementar o valor em um atributo ser not null (como no exemplo do
OP) caso o valor de outro atributo (ou conjunto e atributos) seja true
(ou qualquer outro valor).

Entendo que é possível criar uma relação de dependência, como por
exemplo, um registro em uma tabela 'filha' deve existir somente se
outro registro existir em uma tabela 'pai', mesmo assim, o banco de
dados não pode obrigar através de uma forma normal que o registro
exista na tabela 'filha' e na tabela 'pai' ao mesmo tempo.

Quero dizer: o registro pode existir na tabela 'pai' mas a tabela
'filha' pode ter 0 registros e sem o uso de outros meios como triggers
ou validações de regras de negócio em funções de banco ou nas
aplicações não é possível validar isso somente por relacionamentos, o
que não permitiria fazer a restrição do OP.

Você consegue dar um exemplo de como resolver a questão do OP no banco
de dados usando formas normais?

Ou você quis dizer que usando formas normais seria necessário aplicar
uma regra de negócio escrita em função de banco ou em aplicação?


Adami
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a