Tag clouds in Filemaker?
February 2, 2006 4:15 PM   Subscribe

I'm making a contact database for the first time in Filemaker. I've got a field where I'm entering useful tags. I want to make a front end for this system in the form of a tag cloud. Since I'm so new to Filemaker, I don't know if this is useful or possible -- all I know is Google's never heard of such a thing.

Basically, this reduces to three questions:
  • What type of field should I use to collect my data as discrete units, rather than one long string? (i.e. "x" and "y" and "z" rather than "x, y, z")
  • How should I make a tag cloud to show this whole thing? I'd like to put it in a view within Filemaker, but it seems possible that I could also do it in an external web app. I'm not sure how this is going to be hosted/presented, but I'm open to some HTML hackery.
  • What other components/modules do you consider vital to a contact management database?
posted by electric_counterpoint to Computers & Internet (3 answers total) 1 user marked this as a favorite
If FileMaker relational now? I thought it was flat at one point. For a tag cloud, you'd probably want a separate table (or tables if you wanted to be normalized). So you'd have a Contact table with a contact ID, You'd have a tag table with a tag name and a tag ID, and you'd have a mapping table that would have the contact ID and the Tag ID for each tag that relates to that contact.
posted by willnot at 7:15 PM on February 2, 2006

I guess I don't see the usefulness of a tag cloud for a contacts database. Don't get me wrong, I'd love to see the answer for this, but (following your last question) I just don't see how the benefits of tags couldn't be better accomplished otherwise for conacts (we're talking about names, addresses, etc, no?).

One thing I like to do in FM is to make a field that contains a copy of everything entered into every other field of the database. That way I can use it as a global search field. It won't rank your results, but most contacts db searches will be focused. It may come in hand for that obscure find. It also doesn't clutter things up like a tag-cloud (think of all the single-use tags).
posted by jmgorman at 7:19 PM on February 2, 2006

Best answer: I don't use filemaker, so I can't provide any how-to advice, but assuming that filemaker is a relational database, you really should have the tags stored in a separate table than the rest of the contact information. I would probably use two separate tables in addition to the contact table. It would look something like this:
Contacts Table
ContactID (a unique ID - an incrementing number)

Tags Table
TagID (a unique ID - an incrementing number)
TagText (the tag itself)

Tag-Contacts Table
ContactID (points to Contacts Table)
TagID (Points to Tags Table)
Order (if the order of tag entry matters)
Each time you add a tag to a record, it should check to see if that tag exists in the Tags table, (if not, add it to the tags table), it should use the ID of the contact record and the id of the tag and put them in a new record in the tag-contacts table.

To get the existing tags for a contact, you would query the tag-contacts table by the contact ID and then return the tag text from the tags table associated with each entry returned from the tag-contacts table.

To create a tagcloud, you would run through all the entries in the tags table, do a query on the tag-contacts table, and get the number of records returned. You could then use that number to set the for each tag name in an html file.

This involves understanding a bit about how relational databases work (and assuming that filemaker supports SQL, you'd want to learn the basics about queries -- especially JOINs), and some html formatting, plus whatever filemaker specific stuff you'd need to know about creating text files.
posted by i love cheese at 7:30 PM on February 2, 2006

« Older Don't drink the water   |   Can I write off my car? Newer »
This thread is closed to new comments.