SaaS: одна БД на клиента, или общая база данных?
Решал аналогичную задачу и столкнулся с теми же вопросами, что и вы.

С одной стороны по базе на клиента — недопустимое расточительство. Как правило саасы подразумевают тысячи компаний-клиентов, а тем кто просто зайдет посмотреть не будет числа. 

Если же база одна — в скором времени какая-нибудь быстро растущая таблица станет «неуправляемой» и серьезно просадит производительность. Конечно можно разносить такие таблицы на партиции, но в нашей ситуации есть более интересное решение.

Надо держать несколько БД и в каждой несколько сотен компаний. При этом новые базы можно добавлять по мере развития.
Какое-то время вам вообще будет достаточно одной базы.

Несколько рекомендаций:

1. одну из БД (очевидно первую) назначаем мастер- или «системной» базой. только в ней будет хранится данные общие для всей системы. Например новости вашей системы, глобальные настройки и конечно главное — список компаний клиентов.

2. во все таблицы с клиентскими данными внести поле COMPANY_ID. Более того внести его в состав всех первичных и внешних ключей. Т… е. первичный ключ таблички ORDER будет (COMPANY_ID, ID)

3. ID инкрементировать в рамках компании, а не всей таблицы. Т.е. у каждой компании будет заказ с ID = 1,
 2 и т.д.

Пример:

COMPANY (id, name) — «системная» таблица с компаниями-клиентами

ORDER( company_id, id, customer ) — «клиентская» таблица заказов
PRODUCT( company_id, id, name ) — каталог товаров компании
ORDER_ITEM( company_id, order_id, product_id) — продукты в заказе

первичные ключи:
в ORDER и PRODUCT — (company_id, id)
в ORDER_ITEM — (company_id, order_id, product_id)

внешние ключи в ORDER_ITEM:
 (company_id, order_id) → ORDER( company_id, id)
 (company_id, product_id) → PRODUCT( company_id, id)

Такой подход дает во-первых максимальную изолированность данных компании.
Во-вторых — возможность переселиения компания из одной БД в другую без конфликта первычных ключей.

Если будут вопросы — пишите в местную почту ;)
Удачи.
Вариант с БД под каждого клиента — выглядит извращенным. А возможность организации клиентом полей в формах можно и в структуру БД изначально заложить.