We have a home-grown learning management system (LMS - highly abused term, but I'll be damned if I can find a more succinct way of putting it) that includes a list of classroom classes (filed under various categories) and a list of online educational modules (filed under various categories) - and there have been some (justified) complaints about it being difficult to find things.

I've read a couple of articles on creating a tagging system, and have seen a number of implementations. I was curious as to how the S[O|F|U] implementation was set up as it seems to be much better than most of what I've found.

Please don't hear what I'm not saying: I don't want the code handed to me on a silver platter. I'm just curious as to the general DB/Infrastructure used for the tags here as I like the system much better than what I've found elsewhere.

  • SOFU is just one space away from being vulgar. Oct 13, 2009 at 19:58
  • 2
    S OFU​​​​​​​​​?
    – Welbog
    Oct 13, 2009 at 19:59
  • 3
    Oh yeah, I also find en.wikipedia.org/wiki/Tofu offensive :)
    – perbert
    Oct 13, 2009 at 22:30
  • 9
    I find Wikipedia offensive. And you. And also (We|Ouè)lbo[u_]?g(ue)?|Susan( Papadismgaogenabhieanae(laegkae)?)? whose identity can only be accurately described with a regex. Oct 14, 2009 at 2:37
  • 3
    Welbog's name is not regular. He will take offence on that.
    – perbert
    Oct 14, 2009 at 13:17

1 Answer 1


The db model is the easy part, the tricky part is the find-as-you-type implementations which auto-completes tags, it is tricky to get it working properly cause of various browser annoyances (finding where the cursor is, is non-trivial).

On the DB side a PostsTags and Tags table should be enough to get you going.

From a performance perspective, you have to cache total counts per tag and don't want to end up in deadlock central.

Then you may also want to look at Tag synonyms so for example if someone tags a topic with c# you could automatically retag to c-sharp.

Finally you may want to consider admin tags. (tags that can only be applied by admins)

  • Total counts aren't going to be an issue, and I'm not sure I want to venture in the quagmire that the synonyms is likely to end up... but I like the admin tags. This does sound similar to the infrastructure behind the categories, so I may leave it the way it is and just change the display end of it.
    – AnonJr
    Oct 16, 2009 at 18:44

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .