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