[dev] Re: Adding contact to nag task [Patch]

Hans Lellelid hans at appliedsec.com
Fri Jan 24 12:24:57 PST 2003


>It already was my intention to generalize what I had so more. I had some
>ideas on that, but what you are talking about takes this a bit beyond that.
>I was thinking about introducing some sort of Unique Identifier concept
>(what I now called keyFields in Turba) that allows applications to link into
>each other. We could create a horde_crosslink table that contains four
>fields:
>from_application, from_UID, to_application, to_UID.
>This also allows associating Notes with Tasks and/or Calendar Events or even
>to link Tasks to each other (follow-up tasks).
>This would result in something like the following set of APIs
>
>UIDFields: This should return the set of UID fields.
>searchUID: This seach should at least return the UID.
>showByUID: This should show a page with the associated element
>descriptionByUID: This should retreive a description that can be used to
>show in an external links list.
>  
>

Yeah -- this is very cool.  Sorry -- I wrote my previous post before I 
had seen your note (duh!).   One thing I was thinking -- it might make 
sense to have one additional field in this crosslink table: something 
like `relationship_id`.  It is conceivable that the same object types 
would need to be related in different ways.  E.g. a person (Turba?) and 
document (Gollem?) could be related in several ways: document author, 
document poster, current document holder (checked out), etc.  The app 
that is concerned with the relationships might want a way of tagging 
these various ways that items can be related.  Of course the field could 
be ignored if you simply want to know "everyone associated with this 
document".

When I originally imagined the crossref table, I was thinking that it 
would just be 3 fields:  from_uid, to_uid, and rel_id.  I was imaging 
that the app name would be part of the UID fields -- e.g. 
'turba:myusername at mydomain' or 'nag:12'.  I think that storing the apps 
probably makes a lot of sense, however.  One question -- what about 
different apps that may provide the same functionality?  -- e.g. if  I 
create a "people" app that provides 'contacts' (just like Turba) would I 
want to be able to access the relationships in the crossref table?  ... 
Again, just thinking out loud :-)

Cheers,
Hans
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3299 bytes
Desc: S/MIME Cryptographic Signature
Url : http://lists.horde.org/archives/dev/attachments/20030124/92f592ce/smime.bin


More information about the dev mailing list