Як краще зберігати адресу файлів

У мене при додаванні нового файлу стоїть перевірка на те існує вже такий файл чи ні, якщо існує то до імені приписується унікальний ключ і зберігається з новою назвою.
Також всі файли лежать в під папках папки upload, але шлях до папок прописані в конфіги, а не в базі.

> Якщо кількість файлів буде великим, то імена можуть збігтися
А що заважає перевірити ім'я файлу на унікальність, і в разі збігу, додавати в кінці унікальний ідентифікатор. І взагалі, чим 2-й варіант вирішує цю проблему? Файли все одно часто зберігаються в одній загальній папці

І взагалі, чим 2-й варіант вирішує цю проблему? Файли все одно часто зберігаються в одній загальній папці
Коли файлів накопичиться БАГАТО і це буде серйозно гальмувати ваш проект - ви з легкістю зможете створити ще одну папку для файлів. Для цього вам і потрібен буде другий варіант.

Ну в загальному, цей шар абстракції - нікому не заважає.

Чи не могли б поділитися довідковій літературі з організації blob сховищ? А саме є питання де зберігати те саме (зміщення і розмір даних) в великому файлі якщо не використовувати бази даних зовсім. Просто якщо вже переходити на blob то і індекс хочеться зберігати там же, питання як це зробити більш грамотно і на підставі багаторічних експериментів, а не на коліні.
Буду вдячний за будь-яку літературу з цього питання.

Перший варіант більш гнучкий, так як шлях до картинки можна вказати окремої директивою конфиг файлі програми.
Наприклад в джанго використовується другий варіант - теж дуже непоганий, для кожного поля зображення, в моделі, можна встановити свій шлях до зображення (фактично вказати директорію куди буде завантажуватися файл, щодо загальної директорії завантаження).
Що ж щодо повного шляху - не дуже зручно, тому що прив'язка до розташування файлу жорстка.
На щет 4-го варіанту - це якось дивно, навіщо створювати ще одну таблицю в якій зберігати id записи? Зараз не бачу сенсу.
Я б скоріше використовував перший і другий варіант, а вибір між ними залежав від програми яке я пишу. Четвертий - за умови що у мене дуже багато даних в таблиці, які потрібні з різним ступенем релевантності. Ті що більш затребувані були в таблиці А, а ті що менше - в В, і зв'язувалися по id.