Inaccurate hole in object
Topology overview:



You will probably want to go with similar topology for Smooth Shading and Subdivision Surface modifer.

It's created from simple Circle.


Extruded and Scaled outwards.
Extruded bottom edge.

Tip: To streighten Edge Loop on the Z axis - press S > Z > 0
Whole shape extruded.
Bottom part extruded.


After this you will need to add Proximity Loop to have nice Bevel with Bevel Modifier.



You can control edge sharpness with Bevel Width and number of Segments.

Blend file: