Зависит от ваших циклов разработки, тестирования и обслуживания. Также о размере и местонахождении команды разработчиков (и, конечно, организации). Если вы поддерживаете несколько версий базы данных, вам может потребоваться еще больше сред.
В реальном мире я нашел следующий подход весьма удовлетворительным:
- единая центральная база данных / приложение для целей тестирования, периодически вносит в нее все изменения от различных разработчиков
- локальные копии для разработки (так что вы можете свободно удалять и перезагружать всю базу данных)
- Сценарии обновления поддерживаются для любых изменений в схеме, вспомогательных и типовых наборах данных.
Вот еще несколько пунктов:
Если два разработчика (две команды) работают над изменениями, которые могут повлиять друг на друга, они должны выполнить свои задачи независимо, а затем интегрировать / объединить и протестировать. Для этого гораздо лучше иметь отдельные среды разработки (если только они не должны работать вместе, и в этом случае я считаю их частью одной команды; тем не менее они могут работать над своими собственными копиями базы данных и совместно использовать ее при необходимости)
Если они работают над изменениями, которые не влияют друг на друга, они могут работать на главном сервере. Или на своих локальных копиях базы данных.
Таким образом, разработка в локальной копии имеет все преимущества без риска в общем случае (когда вы поддерживаете несколько версий системы и в любом случае поддерживаете сценарии обновления).
И все же было бы здорово, если бы вы могли обмениваться тестовыми примерами, поэтому возможность простого и быстрого сброса / восстановления базы данных является большим плюсом.
EDIT:
Все вышеперечисленное предполагает, что наличие копии на локальном компьютере всей системы для целей тестирования возможно (размер, производительность, лицензии и т. Д.).