Отслеживание внешних файлов с помощью базы данных SQL и удаление внешнего файла при удалении записи для него

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

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

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

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

Как мне удалить файл из файловой системы, когда я удаляю запись из базы данных?

Я вообще правильно это делаю? Нормальнее ли вставлять изображение в базу данных в виде двоичного двоичного объекта? (Накладные расходы на копирование данных делают это для меня невероятным, и должен быть лучший способ.)

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

РЕДАКТИРОВАТЬ: Моя текущая стратегия - использовать сценарий оболочки, который обрабатывает удаление изображения. Во время сценария оболочкион заставляет файл транзакции отбрасывать все записи базы данных, связанные с изображением, сохраняя при этом полный путь к файлу в виде простого текстового файла. Если транзакция прошла успешно, я удаляю изображение в плоском файле. Это разумно? Есть ли способ лучше?

5
задан Dr. Person Person II 13 June 2011 в 05:10
поделиться