Meta Stack Exchange is where users like you discuss bugs, features, and support issues that affect the software powering all 158 Stack Exchange communities.

What is meta?
Here's how it works:
  1. Any Stack Exchange user can ask a question
  2. The community provides support, votes on ideas, and reports bugs
  3. Your voice helps shape the way Stack Exchange operates

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.

share|improve this question
SOFU is just one space away from being vulgar. – Ólafur Waage Oct 13 '09 at 19:58
S OFU​​​​​​​​​? – JSONBog Oct 13 '09 at 19:59
Oh yeah, I also find offensive :) – perbert Oct 13 '09 at 22:30
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. – Super Long Names are Hilarious Oct 14 '09 at 2:37
Welbog's name is not regular. He will take offence on that. – perbert Oct 14 '09 at 13:17

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)

share|improve this answer
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 '09 at 18:44

You must log in to answer this question.

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