Firstly, it's probably worth understanding how each of them works and the upsides to them...
Oral
- Typically work by ingestion. In other words the parasite takes a bite, as it were, and poisons itself.
- No issue with substance transferring to you or a child, not all people react well to topical medications, including babies.
- Some options are more or less effective. Spinosad kills all and lasts 30 days. Nitenpyram kills adults and Lufenuron is good at rendering eggs and larvae ineffective.
Topical
- Neurotoxin, effects on contact. Spread using the natural oils in the fur.
- Effective in preventing egg laying and larval growth.
- Potential physical contact with a chemicals, potentially risky for children who might pet the animal and then put hands in mouth.
So, what does that mean?
The answer to your question is... it depends. With children around, the oral option is safer, but you need the right one to get the best effect. With topical, it's more effective, especially at preventing the next generation, but carries risks with children around.