What are the pros and cons of this schema for flashcards app? I am planning a flashcards app with the following schema:

user(id, name, email)
flashcard_group(id, user_id, group_name, group_tag) 
flashcard(id, group_id, question, solution)
guess(id, user_id, flashcard_id, is_correct)


Some of the things I would like to ultimately calculate are:


The number of times a user guesses a flash card incorrectly and correctly (or a correctness percentage)
All of a user's flashcards
All of the user's flashcard groups
Probably more information about guesses. 


Does this seem reasonable? How else could I go about capturing guesses in a logical fashion?
Flashcards are used to test knowledge in a topic.
Each card has a question and a correct answer.
One topic has many cards.
Each card may belong to more then one topic.
User chooses a topic to test in.
User may attempt the same test many times.
Each test has many cards (questions) from the chosen topic.
Each card may be part of many test from the chosen topic.








Note:
UserTopicAttempt is as sequence number (1,2,3 ...) for each (USerID,TopicID).