What is meta? ×

Possible Duplicate:
How is the tagging system implemented here at S[O|F|U]?

I am currently building a website in which users can tag a submission, similar to that of SO, Flickr etc.

I'm just wondering how SO manages all the tags on here - what does the taxonomy look like?

More generally - I am struggling to decide to normalize the data or not. What is the best practice here?

Thank you,

Edit: I have seen this entry on tagging, but still am unsure which approach is best overall.

share|improve this question

migrated from stackoverflow.com Sep 2 '09 at 17:47

This question came from our site for professional and enthusiast programmers.

marked as duplicate by Jeff Atwood Dec 3 '09 at 17:13


add comment

2 Answers

Take a look at how tags are stored in the data dump.

share|improve this answer
add comment

I will assume you are not expecting an answer from Jeff Atwood, so let's speculate:

You will need three tables:

i) a TAG table

ii) a Questions table

iii) a table to implement the TAG-QUESTION relationship that will have (at least) the keys of both tables.

I would never, no matter what performance considerations, think about a non normalized solution for this!.

share|improve this answer
Well, since SO has a hard limit of five tags per question they can probably get rid of the question/tag relation table and store the tags directly in the question table. But in general I agree: Worry about performance if it becomes a problem, not at a point where you having nothing to test and profile yet. –  Јοеу Jun 8 '09 at 22:53
Yes, I don't want to imagine that code checking for the tags on the fields tag1, tag2, tag3... –  tekBlues Jun 8 '09 at 23:04
No - I wasn't expecting an answer from Jeff necessarily. But one would be nice :). Speculating sounds good to me - I appreciate any insight on the topic. –  barfoon Jun 8 '09 at 23:06
+1 - You should definitely worry about normalizing first, and performance second. If performance becomes a problem, having normalized tags is probably not going to hurt when you're trying to optimize... –  Tomas Lycken Jun 8 '09 at 23:11
Over that, I suppose the SO database to be very manageable, only 180.000 questions (until today) and not so many simultaneous viewers. –  tekBlues Jun 8 '09 at 23:35
add comment

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