On 13-12-2012 12:19, Renato Augusto wrote: > Um Devices pode assinar vários Channel's da mesma Application em que ambos > estão relacionados, assim como um Channel pode ser assinado por vários > Devices. > Até aí o modelo abaixo contempla:
Device >-------- App --------< Channel > Indiferente de regra de negócio, a questão é como consistir que em uma tabela > associativa entre Device e Channel que eles pertençam a mesma Application. Eu > poderia, sim, implementar app_id na PK de Devices e Channels, mas aí eu teria > que ter uma chave composta e caso fizesse um FK tanto para Device quanto para > Channel, teria que exportar toda a chave composta, deixando assim a estrutura > mais poluída nas tabelas relacionadas. > O que importa não é a regra de negócio, mas sim o problema em questão. E se a > FK de Channel para Application fosse opcional? Como poderia consistir que, > caso o Channel tivesse relação com Application, fosse a mesma Application de > Device? > Acredito que somente através de trigger. > Você está querendo desassociar o modelo das regras de negócio? Isso é um erro de projeto! O modelo é feito a partir das regras de negócio (senão não haveria a necessidade de modelar cada sistema; podíamos utilizar "o modelo" para aquela determinada aplicação). Deixa eu ver se consegui entender onde você quer chegar... Device --------< AppDeviceChannel >-------- Channel v | | App PS> evite top-post e responda no contexto. Isso foi discutido semana passada [1]. [1] http://listas.postgresql.org.br/pipermail/pgbr-geral/2012-December/033763.html -- Euler Taveira de Oliveira - Timbira http://www.timbira.com.br/ PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral