Topology for a disk with circular holes?
As was already recommended in the comments, don't use booleans, they are a beginners trap. They can be extremely useful but they are also dangerous.
Until you understand how edge flow, tensions and general topology work I'd advise to stay completely clear of them.

The "perfect topology" doesn't exist, what you can make is clean topology, clean topology is made of mostly quads (four sided polygons) of very similar edge length, there are other rules and guidelines, but as long as you adhere to those two points you will be in the clear for the most part.

Have a look at the site Duarte linked: Topology it has a lot of very good examples.

This object as far as I understand has 16 holes and 8 spikes, so you can make just an 8th of the full spin and then instance it around a circle using the array modifier and an empty.

Like this:

Create a piece matching the "period" of your full model, in this case this is dictated by the spikes, there are 8 spikes, so you need to pick a 45° section and model it:



I'm using looptools to make sure my square holes are perfectly square, you can do something similar without enabling looptools by using spherify, ALT+SHIFT+S.

This is how it looks with Subsurf:



Finally you use an empty and an array modifier to copy the piece and rotate it around its origin:



Hope this helps, I'd advise starting over and keeping the un subdivided mesh fairly simple.