Para não modificar o modelo de dados de uma aplicação. Uma solução é utilizar a relação acs_rels para relacionar dois objetos no sistema. No caso, os dois objetos são dos tipos pa_photo e (dotlrn_community e apm_package)
Como faço para adicionar uma nova relação em que um dos objetos hora é um tipo, ora é outro.
A API rel_types::new possui como agrumentos: supertype, ..., object_type_one, ..., object_type_two...
No caso, o argumento object_type_two possui dois tipos: apm_package e dotlrn_community, dependendo do contexto
então o exemplo da API fica:
rel_types::new "photo_group" "Photo Group" "Photo Group" "pa_photo" 0 1 "apm_package" 0 1
rel_types::new "photo_group" "Photo Group" "Photo Group" "pa_photo" 0 1 "dotlrn_community" 0 1
Porém não é possível existir supertypes repetidos.
Pensei em criar um novo tipo de objeto para o obect_type_two, mas isto causa um erro no momento de inserir um novo registro, pois a verificação de restrições sobre os tipos dos objetos falha.
Pensei também em criar duas relações, mas então eu perderia as referências e associções que desejo criar em outras APIs ao longo do código.
Alguma idéia brilhante?
Autor: iuri sampaio
33 comentários