Most efficient table structure for multi-tenant database
A typical implementation of &quot;multi-tenant&quot; is to have a database for each client.

Each database has the same few dozen tables.
Security (if you care) is somewhat available at the database level.
If your product becomes insanely popular, sharding is relatively easy to add (each server would have several clients).

A downside is the thousands of tables in the whole system.
There would be an extra database for admin stuff -- list of users, their passwords, etc.
If you implement with a single set of tables, then

Client_id would be in many of the tables.
Most indexes would be composite and start with client_id.
Many:many tables may or may not avoid including client_id, depending on whether the Entities have their own id.

Prototype now; analyze; but plan on a major redesign of the schema 6 months from now.  Without the overhaul, you will forever be swearing at yourself for making the wrong decision today.  And your product will die because it could not flex to meet future needs.