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

Responder a