Skip to content

Посты

Централизуйте целостность ваших данных

4 мая 2021 г. • 2 мин чтения

Централизуйте целостность ваших данных

Системы (т.е. базы данных), управляющие целостностью своих данных, звучат как здравый смысл, и в простых сценариях это действительно здравый смысл. Однако, когда бизнес-правила становятся сложными, сложнее проверить данные в центральном месте.

Когда система (т.е. база данных) больше не может обеспечить форму данных, что-то другое должно взять на себя эту роль. Когда это может произойти?

Формат номера телефона в США — это (код города) (префикс) – (номер), вот пример: (734) 555-3212. Для простоты мы будем говорить о базе данных в этой статье, но хранилище данных не обязательно должно быть базой данных.

Номера телефонов в США всегда содержат десять цифр (мы игнорируем международную цифру). Номера телефонов могут быть в различных форматах:

  • xxx.xxx.xxxx
  • xxx-xxx-xxxx
  • (xxx) xxx-xxxx
  • (xxx) xxx.xxxx

Большинство баз данных ограничены типами данных (т.е. числа, строки, даты и т.д.) и не поддерживают форматирование. Многие приложения выбирают использование строкового типа данных для хранения номера телефона. Однако строковый тип данных принимает ЛЮБУЮ строку. Чтобы убедиться, что номер телефона действителен, нам нужен дополнительный уровень валидации.

В одном приложении, подключенном к одной базе данных, валидация данных обычно применяется в приложении.

Когда ваша архитектура растет до двух или более приложений, использующих общую базу данных, могут произойти две вещи:

1. Каждое приложение имеет свою собственную валидацию данных:

2. Существует центральный сервис, который приложения вызывают для валидации данных и сохранения данных:

Риск валидации данных в нескольких местах заключается в том, что валидации могут быть несинхронизированы. Допустимый формат для одного приложения может быть недопустимым в другом приложении. В худшем случае неправильный формат вызовет ошибку или, в крайних случаях, приведет к сбою приложения.

Лучший вариант — централизовать валидацию данных, чтобы формат, хранящийся в базе данных, был согласованным для всей организации. Конечно, есть исключения, и я предполагаю, что несколько приложений читают и записывают в общую базу данных.

Автор: Chuck Conway — инженер AI с почти 30-летним опытом разработки программного обеспечения. Он создает практические системы AI — конвейеры контента, агенты инфраструктуры и инструменты, которые решают реальные проблемы — и делится тем, что он узнает на этом пути. Свяжитесь с ним в социальных сетях: X (@chuckconway) или посетите его на YouTube и на SubStack.

↑ Вернуться в начало

Вам также может понравиться