Database design for dentists
A few things spring to mind.


The patient_info table should be called patient. The (my) patient table should contain patient_name. 
Every table should have a Primary Key called table_name_id and not just id as you have (makes debugging difficult - which "id" is causing the problem + problems of ambiguity of column names).
The medical_history table should hang off patient.
The table you call patients should be called appointment.
You vary your table names between singular and plural. Pick one and stick to it. I recommend singular.
These are just my first impressions.
You could also Google things like "Open source medical/dental practice software" and see how they do things in their schemas. Then you might be able to adapt them to your needs. That's the beauty of Open Source software.


p.s. welcome to the forum and good luck with your project! :-)

[Edit in response to OP's request for clarification]

Delete you patients table and replace it with the appointment table.

Your appointment table will have appointment_id, patient_id, dentist_id, date and time. 

As regards your dentist friend, that's great that you can run ideas by them, but check out the Open Source s/ware nonetheless.

Another point, I don't know if MySQL is a requirement or not, but if not, I would change to PostgreSQL. Far better for CHECK CONSRINTS - i.e. no overlapping appointments &amp;c.