Поддерживать целостность данных между MySQL и файловой системой - PullRequest
0 голосов
/ 27 февраля 2019

В основном, я храню некоторые файлы, которые связаны со строкой в ​​базе данных MySQL

Поскольку в моей базе данных есть каскад, поэтому, если я удалю родительскую запись, записи детей будут удалены, включая эти строки, которыесвязаны с файлами, хранящимися в файловой системе

Как можно убедиться, что при удалении строки записи из базы данных файл, связанный с этой строкой, также удаляется из файловой системы для сохранения целостности данных?Любые автоматизированные способы.Я использую SQLAlchemy во Flask.

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

1 Ответ

0 голосов
/ 27 февраля 2019

Нет ничего встроенного в стандартный MySQL или MariaDB, чтобы сделать это.И триггеры не срабатывают, когда строки удаляются каскадными ограничениями.

В прошлом мне приходилось делать подобные вещи.У меня был хороший успех с двухэтапным процессом удаления.На первом этапе столбец с именем active в главной таблице устанавливается на ноль, что делает его недоступным.

На втором этапе, выполняемом пакетами, может быть, в одночасье, программа очистки находит active = 0Строки, находит файлы, упомянутые в строках основного файла и связанных строках, удаляет файлы, а затем удаляет строки.

В этом нет ничего автоматического, но это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...