RE: The Consequences of Having Many Custom Entities in Dynamics 365
On top of what David suggested, i would say you can follow most of the relational database design or data modelling principle when you are creating Custom Entities in CRM.
When you create an Entity in CRM, behind the scene it creates an SQL table. When you add a lookup field to an Entity, it creates a relationship 1:N.
What would you do if you were to design as your own database, you could follow the same approach. Try and normalise data as much as possible don't store all the data in one entity(table) but you can do some responsible de-normalization.
You also need to take the User Requirement into account. What your end users want, when you design entities you have to keep that in mind as well. If you store all in one entity, you may not be able to provide different views and forms without doing a lot of customisation and code