I see many people use https://www.drupal.org/project/eck module when they want to create new entites in drupal 8. But there is a problem with that. By default ECK module in UI doesn't create base fields, you can create bundles and then add fields to them. Thing is when you add fields you create new tables in DB, which in the end means more complex queries. For example If you are using new entity just to store some info, if you create it in code and use only base fields, you will have 2 new tables created, one for entity info storage and one for base fields info storage. Even if some of this fields are translatable and/or have reference to other fields, it will still be just those 2 tables. How to add base fields check here
https://www.drupaldump.com/data-modeling-drupal-custom-content-entity and also use "drupal console" for basic scaffolding, its is very helpful.
So what does ECK do, well you create new entity with default base fields and then you need to create bundles and add fields to that bundle. So when you create your new entity and add first field to that bundle you will create new DB table, so now you will have 3 tables for this entity 2 that you get by default and 3rd one from this new field, you create more fields you will get more tables.
Instead my suggestion is to create new entity with base fields, store all there, make them translatable if needed, revisionable if you must(ads extra DB tables also) and save space and computation power for your site.