For the longest time I was firmly in this camp. I'd pour over single-table designs trying to reuse GSIs w/ generic attributes across entities, utilize inverted indexes, and implement composite keys. Then came re:Invent 2019.
And finally…
Hmm, how about adding a field to each item that identifies its ENTITY TYPE. Problem solved. 😉
But seriously, I think it’s MORE difficult if you have multiple tables. Here’s why…