Я делаю решение в php, и я смотрю, что у меня несколько установок для разных клиентов. Если у меня было 20 баз данных, есть ли что-то не так, указывая их на одну и ту же базу php-кода? например. или это плохая практика?
Заранее благодарю за ваши мысли и опыт 🙂
Это возможно и не повлияет на производительность, но имеет недостаток.
Если у вас есть одна кодовая база, это означает, что вы должны перепроверить всех клиентов на наличие ошибок при их обновлении. Поэтому для ваших клиентов лучше разделить кодовую базу, чтобы вы могли обновить свою кодовую базу для конкретного клиента и предотвратить ошибки для других клиентов.
Если все работает для одного клиента, вы можете рассмотреть одно и то же обновление для другого клиента.
Это так, если у вас есть пользовательский код для каждого клиента, если это одно приложение, такое как система управления почтовыми отправлениями
это не будет плохой практикой.
Было бы неплохо, если бы вы присвоили номер версии каждому клиенту. Это позволяет тестировать новую версию на одном клиенте и медленно переносить другие клиенты в более новую версию
Я бы сказал наоборот от Виссера. Если в одной установке есть ошибка, то такая же ошибка будет существовать во всех установках, если вы не предоставите настраиваемые версии вашего программного обеспечения . Разумеется, разные клиенты могут использовать приложения по-разному, поэтому некоторые могут никогда не испытывать дефект, который придает бизнесу другого клиента остановке. Поэтому я снова не согласен с Viseer, что это не повлияет на производительность – различия в использовании могут привести к очень заметным различиям в общей производительности для конкретного клиента, но настройка на уровне PHP принесет пользу всем клиентам. Настройка на уровне базы данных – немного другая история – некоторые клиенты могут извлечь выгоду из индекса, который замедлит других клиентов.
Если вы предоставляете индивидуальные варианты поведения вашего кода, то как вы это делаете, это зависит от сложности этих вариантов. В идеале различия должны быть описаны в базе данных, и тот же PHP-код будет давать разные результаты – например, один клиент хочет автономную систему управления пользователями и аутентификацией, другой клиент хочет использовать аутентификацию LDAP, третий OpenID – в этом случае ваш код должен реализовать все 3 и метод, выбранный во время выполнения на основе данных.
Иногда (но редко) нецелесообразно реализовать этот подход, и использование различной логики приложения для разных установок – это решение. В этом случае правильным подходом является поддержание вилки в вашей системе управления версиями. Примером может быть разный брендинг на сайте – если вы не разрабатываете систему управления контентом, то, вероятно, проще использовать разные файлы CSS (я изо всех сил пытаюсь придумать пример, в котором оправдан другой PHP-код).