'Answers' of some 'answered questions' are often not found when the question is opened later. Why does this happen? Thank you.

2 Answers
Oct 9, 2017

Answer:

This is probably a side effect of the database structure underlying Socratic's web site...

Explanation:

What follows are basically some guesses from experience...

I suspect that for the sake of efficiency, Socratic's web site has a database structure containing:

  • A table of questions (or index to questions) that includes a flag indicating whether the question has been answered.

  • A table of answers (or indexes to answers) with associated question identifiers.

If a question is answered then a record is added to the table of answers and the "answered" flag is set in the table of questions.

If an answer is deleted then a record is deleted from the table of answers, but the "answered" flag is not being reset in the table of questions.

To fix the problem you might think that when an answer is deleted from the table of answers that the "answered" flag should be cleared on the question, but that would not work if there is already more than one answer to the question.

One fix might be to trigger a check when deleting an answer, which updates the "answered" flag on the question to reflect whether it has any matching answers.

A better fix would be if the question carried a count of the number of answers instead of an "answered" flag. Then we would want to decrement this count on deletion of an answer. The potential hazard with this kind of approach is that without appropriate use of transactions, the count of answers could get out of step with the actual number of answers.

As I say, these are "guesses", but perhaps @stefan-zdre can shed more light.

Oct 10, 2017

Answer:

Here's why that is the case.

Explanation:

This actually has to do with how we treat content posted by banned accounts.

I don't want to share too much info on this because that would be giving the game away, but the idea is that we have two ways of dealing with unwanted content--delete it or make it invisible to the community.

Each approach has its benefits and drawbacks, so most of the times, I use both when dealing with content posted by banned users.

One example to go by

https://socratic.org/questions/how-do-you-find-the-vertex-and-intercepts-for-y-x-2-4x-1-1

If you look for this question on the Algebra subject page, it will appear as having #2# answers.

However, when you click on the actual question, you only get #1# answer, the one Jim posted. That happens because the second answer--which is not really an answer per se, just some content posted by someone I banned about #20# minutes ago--is not visible to the community.

So the second answer is there, it's just that you can't see it. That is why the answer count seems to be off.

Long story short, what you're referring to is just a technique that we have to keep unwanted content at bay.