Technically if you are consistent with how you name things anything is good to go. There will be arguments on both sides on whether to use CamelCase or underscores.
I personally suggest naming your tables in singular (so question_type over question_types). It may seem trivial, but eventually you will run into situations where the pluralized version may introduce problems with spelling, or general consistency. That's part 1.
Columns should always be singular.
When I started working with databases, I went with the underscore method for names and for columns. Pretty sure I got the suggestion form SO, but I don't know for sure.
I also avoid the long names on the ID field because I find it spurious. My schemas are always pretty obvious (workbench or otherwise) and my queries always have the identification prefix, so the long name just increases the amount of characters I have to type, with no actual benefit of the added characters.
I seem to remember reading this thread to get a better idea of what method to use in the plural vs. singular tables. Hope it helps.
Table Naming Dilemma: Singular vs. Plural Names