Mengapa tidak membuat database saja atau masing-masing perusahaan? Dan kemudian Anda bahkan tidak perlu membuat nama tabel dinamis saat membuat kueri. Ini adalah solusi yang jauh lebih baik. Terlebih lagi, ini akan membuat data klien lebih terpisah sehingga setiap ketergantungan mungkin akan lebih jelas.
Hal di atas berfungsi paling baik bila lapisan aplikasi juga terpisah sehingga Anda dapat memberikan setiap instance dengan set kredensial login database yang berbeda.
Jika bukan itu masalahnya, ini mungkin berfungsi dengan baik atau canggung atau baik-baik saja tergantung pada penginstalan Anda, platform apa yang Anda gunakan, dan sebagainya.
Menambahkan nama perusahaan adalah peretasan, tetapi saya rasa itu bisa dibuat berfungsi.
Memiliki ID klien dalam catatan juga merupakan pendekatan yang umum. Saya tidak perlu khawatir tentang 1,5 juta catatan dari sudut pandang kinerja selama tabel diindeks dengan tepat. Ini bukan jumlah rekor yang besar. Lagi pula, kriteria ID perusahaan harus membatasi hasil dengan cukup baik.