A litte more information would help giving you directions. What data volume do you expect? How many concurrent users will query the database? Do you plan to store all the questions in the database or just relate to them by ID:s?
Also, any requirements for environment? Java, .NET or other?
If you aim for a relation implementation between tags and questions/topics I would go for an object oriented database with some easy to use query langage. Like:
public class Question
{
String QuestionsText;
}
public class Tag
{
String Tag;
}
public class TagPerQuestion
{
Tag ConnectedTag;
Question ConnectedQuestion;
}
Then you could very easily query all Questions with similar Tag using TagPerQuestion. It would be clean and easy. This implementation could be done easily in Starcounter (.NET), VoltDB (Linux).
If your number of items are not extreme and number of simultanius users are low, you could use a traditional database like MySQL as well and replace the classes with tables instead.