Contact
In the case of multiple values for one kind of attribute, we will mark one as "primary". In the case of "pairs", note that eventual implementation would be cleaner than a bunch of disassociated pairs - we'd tie it all together with as little redundancy and wasted space as possible.
Where does Galago fit in here?
Traditional
- Full Name
- Email Address(es): Work, Home, School, etc.
- Screen Names: Protocol:Name pairs (one Protocol will be considered primary, and one name for each protocol will be primary). This also covers video conferencing (where the Name will store their address).
- Phone Numbers: Home, Work, Mobile
- Mailing Address(es): Address Nickname:Address pairs
Direct Connections
Is this useful enough to include?
- Computer Address(es): Domain names, IP addresses associated with this person. Prefer domain names, when possible. Any UI should try to not require the user see the IP address.
- Service Protocol(es): Protocol:Computer Address pairs
- Your User Name on their computer(s): Username:Computer Address pairs
Communications
We should just pass the person's ID number to Beagle to do this on the fly. This will effectively let us attach these to a person:
- Conversations
- Emails/Email Threads
Media
Let's not go too overboard here - For now, all that really makes sense here are image pointers. Video may give us a little room to grow, in case people ever start storing videos of their friends. Sounds seem the least likely (maybe "sign-on sounds", though I find those annoying (User/TravisReitter?)), and especially rare/feature bloat would be music.
Maybe it'd be best to have a general interface which associates people with files, and then any program wishing to use this information could just check to see what kind of file is referenced. This could cover the case of "Which files have I gotten from Joe Smith?" - emails coming in from Joe with attachments would have their attachments registered with this DB. What about files moving around?
- Images
- Videos
- Sounds/Music
Inter-personal
- Role(s): These should always be oriented the same direction, for consistency (ie, store that someone is your "Boss", don't store that you are their "Employee")
