Счёт из PDF в базу данных
Загрузка документов в свою базу требует решений, которых нет в таблице: ключ записи, типы колонок и что делать при повторной загрузке.
Что теряется по дороге
Это не абстрактные риски, а то, из-за чего выгрузка приходит непригодной именно в паре «PDF → База данных».
Порядок работы
- 1
Определите ключ записи. Номер документа не уникален: у мелких поставщиков номера повторяются, нужна пара с ИНН и датой.
- 2
Задайте типы: суммы — числовым типом с фиксированной точностью, а не с плавающей; артикулы и номера — строками.
- 3
Решите, что делать при повторной загрузке того же документа: пропускать, обновлять или создавать версию.
- 4
Заведите отдельные поля под «значение не прочитано» и «поля нет в документе» — это разные состояния, и слить их в NULL значит потерять информацию.
Ограничения, о которых лучше знать заранее
- Публичного API на пилоте нет, выгрузка отдаётся файлом. Если нужен именно API — это разговор, который мы готовы вести.
- Схему базы за вас мы не спроектируем: она зависит от того, что вы собираетесь с данными делать.
Мы перечисляем ограничения до оплаты, а не после. Если ваш случай попадает в этот список — скажите, обсудим до того, как вы заплатите.
Вопросы
Почему нельзя хранить суммы в числах с плавающей точкой?
Из-за накопления погрешности: сумма тысячи строк перестанет сходиться с итогом на копейки, и вы будете искать ошибку распознавания там, где её нет. Для денег берут тип с фиксированной точностью.
Как не задвоить документы при повторной загрузке?
Ключом из нескольких полей: ИНН поставщика, номер и дата. По одному номеру дубли ловятся плохо — про это есть отдельная страница о том, почему номер счёта не уникален.
Проверьте на своём файле: PDF → База данных
Первый документ мы разбираем вручную под ваш формат — это и есть проверка, работает ли схема на ваших файлах.
Первый счёт разбираем вручную под ваш формат. Списание разовое, автопродления нет. Источник перехода: seo/iz/pdf-v-bazu-dannyh.
Другие форматы и выгрузки