Я ищу метод для построения архитектуры разработки. Только я не знаю лучших практик.
Заметка: я работаю со структурой Symfony
Представьте, что у вас есть несколько веб-сайтов, все эти сайты должны иметь свою собственную базу данных и CMS. Но когда вам нужно изменить столбец в БД, вы должны изменить его на все DBS. Или лучше иметь одну центральную БД, в которой вы можете сохранять данные на основе company_id.
А что делать с возможностью повторного использования кода. Например, я создал новую функцию для веб-сайта 1, как я могу сделать эту функцию доступной для всех моих других сайтов без отдельного обновления всех веб-сайтов.
Я надеюсь, вы, со-разработчики, могли бы помочь мне с вышеуказанными вопросами.
Подход к созданию отдельной БД для каждого отдельного сайта имеет два основных преимущества: устойчивость и гибкость.
Если один из ваших проектов будет скомпрометирован и кто-то сможет испортить базу данных, этот же человек не сможет разрушить всю вашу инфраструктуру. И разработчик делает небольшую ебать в UPDATE
запрос также не может повлиять на другие сайты.
Когда одному из ваших сайтов удается неожиданно расти, с отдельными базами данных очень просто перенести его на другое оборудование.
Что касается обновлений в структуре, эти изменения SQL должны быть задокументированы в любом случае, поэтому для каждого вашего проекта должны быть предусмотрены сценарии миграции. Затем эти сценарии могут быть выполнены кодом автоматического развертывания.
Что касается повторного использования кода … ну … вы должны отделить эти повторно используемые фрагменты в их собственных библиотеках, затем поместить в ваши частные репозитории, а затем просто соединить их, используя конфигурация композитора. Таким образом, вы можете развернуть изменения как постепенно, так и сразу.
Других решений пока нет …