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
