"When a user chooses the 'Problem Solved' and there are no best answers marked, should I confirm this is what the user wants"
No, please don't.
Kiko, before and after:
* "( This Solved My Problem )" becomes "[ ] Mark as best answer"
* "( I Solved the Problem on My Own )" becomes "( Problem Solved )"
* "( I'm Still Having This Problem )" becomes "( I Still Need an Answer )"
So the extra complexity in the database (multiple best answers) will actually make the UI slightly more simple, not less.
"When a user chooses the 'Problem Solved' and there are no best answers marked, should I confirm this is what the user wants"
No, please don't.
Kiko, before and after:
* "( This Solved My Problem )" becomes "[ ] Mark as best answer"
* "( I Solved the Problem on My Own )" becomes "( Problem Solved )"
* "( I'm Still Having This Problem )" becomes "( I Still Need an Answer )"
So the extra complexity in the database (multiple best answers) will actually make the UI slightly more simple, not less.