I making a MCQ app and I need to maintain unique questions and their choices in the database so I cant have more than one question with the same question string and choices. But how should I make that efficiently?! I have the question strings saved in the database as TEXT type in a table and another table containing the choices as a one to many relationship does any one have any thoughts? as I think making the question string as unique would be very slow right?!
If I understand your question correctly you need to maintain unique questions in your database. I've a suggestion in which we can find out the keywords (Tags) of from the Question String. To find out the keywords (Tags) from the question we can use 2 ways.
When a question is inserted. we can also take the tags which is related to Question. For Example:
Q1. What colour is the sky?
Tags:- colour, sky
Q2. The sky is what colour?
Tags:- sky, colour
Here we can put the normally used words in table of DB like
Helping Verb.
be, do, have, is, does, had, are, did, has, am, were, was, being, been
Articles
The, A, An
Five Ws
When, Who, How, Why, What, Where
you can find more like that and then we acually subtract this words (keywords/tags) from the string and find the tags automatically.
Either ways we find out the tags. after finding the tags
Letz say if we found 20 tags in a question then we can query that if a question match morethan 15 tags will list and thus can find whether the question is repeat or not.