Dlaczego po prostu nie stworzyć bazy danych lub każdej firmy? I wtedy nie musisz nawet konstruować dynamicznych nazw tabel podczas konstruowania zapytań. To znacznie bardziej dźwiękowe rozwiązanie. Co więcej, sprawi to, że dane klienta będą bardziej oddzielone, więc każda współzależność będzie prawdopodobnie bardziej oczywista.
Powyższe działa najlepiej, gdy warstwy aplikacji są również oddzielne, dzięki czemu możesz zapewnić każdej instancji inny zestaw danych logowania do bazy danych.
Jeśli tak nie jest, może działać dobrze lub być niezręczne lub w porządku w zależności od instalacji, używanej platformy i tak dalej.
Dodanie nazwy firmy to hack, ale myślę, że może to zadziałać.
Powszechnym podejściem jest również posiadanie identyfikatora klienta w rekordach. Nie musiałbym martwić się o 1,5 miliona rekordów z punktu widzenia wydajności, o ile tabele są odpowiednio indeksowane. To nie jest ogromna ilość rekordów. Ponadto kryteria identyfikatora firmy powinny i tak dość dobrze ograniczać wyniki.