Организация разработки базы данных

Вопрос по проекту разработки БД. База данных уже существует и довольно большая (несколько ТБ).

  1. Что вы используете для контроля версий при разработке БД?
  2. Как вы контролируете одновременные изменения модели данных разными командами
  3. Как вы подходите к модульному тестированию при разработке БД?
  4. Как вы поступаете с конфиденциальными данными, если владельцы БД не знают, что является конфиденциальным? Как вы подходите к обфускации данных? Какие у вас техники запутывания?
  5. Как вы работаете с большой БД из нескольких мест?

Пожалуйста, ответьте на один или несколько вопросов по своему усмотрению. Каждый ответ будет рассматриваться отдельно. Большое спасибо вам!

Обновлено: Связанный вопрос с хорошими ответами на п.1 находится здесь: Как вы редактируете свою схему базы данных?

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
3
0
227
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

По поводу 4: «Как вы поступаете с конфиденциальными данными, если владельцы БД не знают, что является конфиденциальным? Каков ваш подход к обфускации данных?»

«Чувствителен, пока не доказано, что безвреден» - вот моя мантра. Если кто-то не приводит доводы в пользу недостаточной защиты каких-либо данных от видимости (внутренней или внешней), мой режим по умолчанию - это защита.

Позже появятся случаи, когда мы будем открывать данные по причинам производительности, отчетности и т. д., Но требуется задокументированное экономическое обоснование с соответствующими подписями.

Ответ принят как подходящий

Для большинства из них, хотя инструменты не применяют общие процессы разработки кода, делают:

  • Поддерживайте систему разработки отдельно от производства с достаточным количеством данных для получения полезных показателей производительности при тестировании новой модели.
  • В этой системе есть модульные тесты (SQL-запросы, фиксации, прерванные атомарные фиксации и т. д.), Написанные и выполняемые для нее перед каждым выпуском.
  • Есть официальные "релизы"
  • База данных разработки - это сама система управления версиями - другими словами, база данных моделируется и хранится в базе данных с входами, откатами и т. д. Это нетривиально и не решает все проблемы, но с учетом отсутствия хороших VCS для баз данных работает.
  • Развертывания (после тестирования, интеграции и т. д.) Состоят только из новой структуры базы данных, поступающей на производственную площадку - таблицы моделирования там не реплицируются.

Другие вопросы по теме