Как лучше хранить адрес файлов/картинок в базе данных
Использую второй вариант, в первом случае если количество файлов будет большим, то имена могут совпасть.
в 3 варианте возникнут проблемы при переезде на другой сервер. О четвертом варианте не задумывался, мне кажется что во втором все просто и понятно.
Ну тут наверное стоит уточнить, что именно хранится в базе. Если это профиль пользователя и путь к единственной аватарке, то можно и 1 вариант использовать. Но могут возникнуть сложности, если захотите все разделять, например, по пользователям или по типам картинок (аватарки отдельно в папке avatars и т.д.). Можно конечно и в логике все это расписать, но почти наверняка будут сложности с количеством правок, если такая переделка возникнет слишком поздно. Поэтому, имхо, предпочтителен вариант 2.
А если это альбомы пользователей с произвольным количеством картинок (и нужна таблица связей), то мне больше нравится вариант 4.