I created a users, referendums, questions, and answers tables in the code below. Based upon requirements, it sounds like you will be able to identify users - I'll assume that they are logged in via an auth mechanism. Also, I would suspect that you wouln't want a user to answer twice so I added an aswered_questions to user in light of not wanting to leak user information into answers. One could probably use a hashed value to identify users at - I'd probably need more info.
Re anomynity of answers, at small scale this could potentially be traced but I'm assuming that there are enough answers that, probabilistically, this wouldn't be achievable.
In the answers table, I changed the answer_value to a Bool. I suspect that there will be more than just true / false in the future but for time being, this is sufficient. There would probably need to be an answer_choices table or possibly convert the answer_value to an enum. However, an enum would not be 4th Normal Form (that's arguable though).
I'