Фотогалереи. Альбомы и тэги
Posted by dilNov 23
Я долго думал, и пришёл к выводу, что понятия “Альбом” и “Тэг” в фотогалерее можно совместить.
Под катом обоснование и мысли о плюсах и минусах такого решения. Покритикуйте, пожалуйста. Только аргументированно.
Что есть Альбом и Тэг в классическом понимании?
Альбом - это группа фотографий, имеющих что-то общее. Например, место съёмки (деревня Гадюкино). Или время (1890 год). Или сюжет (закат).
Тэг - это… тоже группа фотографий, имеющих что-то общее (деревня Гадюкино, 1890 год, закат).
В связи с чем и возникла идея об объединении Альбомов и Тэгов в одну сущность. Зачем? Как обычно, с целью упрощения структуры данных в фотогалерее, упрощения управляющего софта и его отладки, уменьшения количества ошибок.
Что у Альбомов и Тэгов разного?
Альбомы обычно могут быть вложенными (1890 год/деревня Гадюкино (в 1890 году)/закат (в деревне Гадюкино в 1890 году)). Названия у них могут быть неуникальными, если они вложены в разные родительские альбомы. Одна фотография обычно может находиться только в одном альбоме.
Тэги не бывают вложенными. Тэги должны быть уникальными. Одна фотография может не иметь ни одного тэга, может иметь один тэг или много тэгов.
Что я ещё забыл существенного?
После объединения сущностей получается некий ТэгоАльбом, близко соответствующий понятию директории в файловой системе. Фотография при этом соответствует файлу в файловой системе, поддерживающей хардлинки.
Вложенность Альбомов надо сохранить, иначе неудобно. С сохранением древовидной структуры вложенности, иначе получается полный ужас с навигацией.
Зато фотографию можно будет приделывать сразу к нескольким альбомам (хардлинки), за одним исключением: хотя бы в один Альбом фотография должна входить, а то ее найти будет нельзя. Вероятно, придется создать какой-нибудь АльбомПоУмолчанию, в который фотография автоматически попадает, если ее удалить из всех остальных альбомов. Или не создавать, а просто предупреждать пользователя, что при удалении фотографии из последнего её Альбома она будет полностью удалена из системы.
Большой минус получается с уникальностью имён: даже будучи вложенными в разные альбомы, подальбомы должны иметь уникальные имена, иначе их не удастся удобно выводить в Tag Cloud.
Ну и ещё один небольшой минус: некоторая непривычность такой модели для обычного пользователя. Но этим можно пренебречь, кардинальных имзенений нет, а к остальному пользователь быстро привыкнет.
Вот. Критикуйте.
Leave a Reply
You must be logged in to post a comment.