Exercise

Addition of the exercise generation system.
I understand that, but why would Answer belong to Result. Result is how we show which answer the user chose. Answer belongs to question, otherwise the question has nothing to select. 

Therefore Question -> hasOne -> Answer (Answer is just simply a container for the question multiple choice Correct/Incorrect options and a questions True/False option.)

Question -> hasMany -> Result OR Answer->hasMany->Result (Result will just simply show whether they answered wrong/right on the answer fields bool/correct field. Also have chosen filled out so we can have history)

I see what your saying about storing the id, but the answer model would have to be changed significantly. Specifically, how do you address true/false questions.