First time here? Check out the FAQ!

tag vs. tagname in database


I am new to Askbot. I have already has the data file for question. I want to import these things into my askbot forum. I import directly through mysql shell from the text file (.csv) to "question" table. In this table, I noticed that a field name "tagnames". Hence I don't know what is the meaning of field tagnames in question table. But this field is a "NOT NULL" field. Could you please explain why we should have "tagnames" field? I also have to import all the "tag" table and "question_tags" table to do a search using tag.

I have also done the following experiment.

I have 3 questions in my database.

Question 1. tagnames="physics", tag="test""image". //import from file -> directly go to database then use admin UI to add tag

Question 2. tagnames="physics", tag="test""image". //import from file

Question 3. tagnames="test" "image", tag="test""image". //submit through UI

As I expect, when I click on "test" tag (question 3), it show up all the 3 questions. However, when start over, click on the tag "physics" of either question 1 or 2, it show nothing (no matched tag). (I expected when click on physics, it show up question 1 and 2).

Then, what is happened behind the scene of clicking the tag?


A little girl's avatar
A little girl
asked 2012-01-05 22:28:01 -0500, updated 2012-01-05 22:29:07 -0500
edit flag offensive 0 remove flag close merge delete


add a comment see more comments

1 Answer


Hello, if you are creating an importer script, it will be best if you use python calls like user.post_question(), that way all that will be taken care of automatically.

The tagnames field in the question table is a so called denormalized data - simply a copy of tag names associated with the question tags - directly in the question table. That way data loads faster - bypassing the relations to the tag records.

The question_tag table is a bridge table storing assignments of tags to questions and the tag table stores information about tags themselves.

Evgeny's avatar
answered 2012-01-06 08:36:32 -0500
edit flag offensive 0 remove flag delete link


Could you please explain more about the user.post_question(), i.e how can I use this to import a file with 40 questions record in a file? Or I only can use it to import 1 question at a time, and repeat 40 times? Thanks.

A little girl's avatar A little girl (2012-01-07 20:35:07 -0500) edit

How much content are you trying to import? Anyway, for importing I would create a script that first creates users, then with those users posts questions, then answers and comments. If you have the votes - do that after importing all the posts. I would create a script that would load your source file and then process it record by record.

Evgeny's avatar Evgeny (2012-01-07 21:14:18 -0500) edit

I have about 1000 questions in 30 files. And I need to add more question later (more excel sheets are on the way). Hence, it is quite a large data. Now, the only way I know is importing through mysql shell the question table, askbot_postrevision, question_tags. Thanks for you quick reply :)

A little girl's avatar A little girl (2012-01-08 03:17:17 -0500) edit
add a comment see more comments