Composite Entries in Address Book

addressbook.pngOne of the things I really dislike in life is duplication; duplication of data and duplication of effort. I find that it usually pays off in the long run to automate a task rather than justifying not to because the task is so simple/small. I’ve been known to utter the phrase “but what if there where one thousand of them” to coworkers more times than I am willing to admit. Recently I have been frustrated by the Mac Address Book application because is requires me to duplicate both data and effort to organize my contacts the way I would like.

The Problem
Many contacts in my address book share some common data with other contacts. For example a husband and wife share a common home telephone number, home address, anniversary, email, etc. Whereas a group of roommates may share a home phone number and address. Each person requires a separate entry in my address book because they have sufficient amount of information that is different (cell phone, work phone, personal email, work email, work address, birthday, etc.). This causes a problem of data duplication. If I want each member of a relationship to contain the common information I must manually duplicate the information in each entry. Of course, if they move or change their phone number I must be diligent to update the entry for each member of the relationship.

Furthermore, it comes in handy to have an entry for the group (which I call a composite entry) as well has an entry for each individual. The composite entry is used when printing address labels for letters, invitations, etc. It also gives me a place to store information such as children names and birthdays (they usually belong to the couple – not the individuals).

My Current Solution
To reduce my frustration I have been following these simple rules:

  • Create an entry for each individual
  • Create a composite entry for the group.
  • Store all person information in the individual’s entry.
  • Store all shared common information in the composite entry.

Following these rules keeps me from duplicating any information manually (and protects me from stale information if something changes and I don’t remember to update all the different places the information is stored). However, this solution is definitely not perfect. The biggest problem is that the shared common information is only one place – in the composite entry. If I want to find the home address of a friend of mine, Mr. Smith, who is married I must look it up in the Mr. and Mrs. Smith entry (not the Mr. Smith entry.) Also this technique only works if I follow the rules I defined earlier.

My Ideal Solution
Ideally, I should be able to go into the Address Book application, select any number of entries and then create a composite entry based on that selection. This would be similar to the current “group” feature of Address Book with the added ability to assign the common information to the composite group. After the composite entry is setup I should be able to Add/Remove members and edit the current members. The common information, of course, should be displayed in the composite entry as well as each of the individual member entries. If I edit the common information in an individual memeber entry it should remind me that this will affect each member of the composite. At that point I should have the option of updating the composite entry with the changes or removing the edited entry from the composite. Of course, I can live with slight variations to this behavior.

What’s Next?
My options are:

  • Continue using my rules and move on
  • Wait for Apple (or someone else) to fix this
  • Fix this myself

I think at this point I will do so more research. I would hate to fix this problem myself only to find out someone else already has a perfectly good solution (see the intro paragraph). I will also research how I might write a program to interface with Address Book to add my desired features. In the meantime if Apple (or someone else) comes out with a solution I will glady use it.


5 Responses to Composite Entries in Address Book

  1. Dave says:

    Good thoughts, but if you do it yourself then you have to please everyone and make sure it synchronizes with everything. I think Apple has done a pretty good job of maximizing the lowest common denominator. Perhaps hyperlinks to other Address Book entries would solve the problem?

  2. […] Address Book plugin was inspired by my previous rant. It is the first of hopefully many plugins and scripts to realize my vision (and make Address Book […]

  3. Sam Elowitch says:

    The problem really comes down to the fact that does not rely on a true relational database model, so each person does not get their own row in a table, and there is no foreign key to allow you to link one spouse to another by referencing his/her id number. Ideally, phone numbers, e-mail address, postal addresses, people, etc. should all be in distinct database tables … but they aren’t, and I don’t anticipate Apple changing their model.

    The plugin you’ve developed is very good, but it fixes a flawed system rather than having the system itself be well designed in the first place.

  4. tl says:


    I totally agree that Relationship Completer is simply trying to make a flawed system a little more usable. There are a lot of features I would like to add to AddressBook but it is nearly impossible due to the inherit limitations.

  5. Dem says:

    I agree completely! Duplicate information in my address book is like nails on a chalkboard.

    There’s no inherent reason why Apple couldn’t enhance the UI to support “composite” entries in Address Book. Under the hood Apple could implement the entries as separate or combined records, use a true foreign key or build some other specific simple referencing mechanism… it is doable. It’s software.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: