Vitaphoto: Ссылки — различия между версиями
Материал из YourcmcWiki
м |
|||
Строка 27: | Строка 27: | ||
Специальные слова подвергаются локализации: «Special» = «Служебная», «Photo» = «Фото», «Album» = «Альбом». | Специальные слова подвергаются локализации: «Special» = «Служебная», «Photo» = «Фото», «Album» = «Альбом». | ||
+ | |||
+ | Размышления по поводу страниц и дат — какие можно выделить подходы: | ||
+ | ;Банальный (количественный): Последовательность фотографий разбивается на отрезки фиксированного размера, последний из которых может быть меньше этого размера.<br />«+»: максимум простоты.<br />«-»: при добавлении фотографий меняются абсолютно все страницы альбома, то есть, ссылка — не уникальный идентификатор данных.<br />«-»: страница — «суррогатный ключ», может искусственно разбивать «желаемое» для просмотра множество фотографий посередине.<br />«-» (очень маленький): при просмотре последних страниц просматривается всё множество фотографий, то есть запросы к первым страницам несколько легче, чем к последним. Но это некритично, так как нет здесь таких объёмов данных, на которых сканирование индекса приводит к хотя бы каким-нибудь проблемам. | ||
+ | ;По датам, одна дата на странице: «+»: просто.<br />«+»: ссылка на набор фотографий не меняется со временем.<br />«+»: все запросы к базе равнозначны.<br />'''«-»''': (существенный!) фотографий за день может быть очень немного, в этом случае страницы будут полупустые. | ||
+ | ;По датам, несколько дат на странице (минимум N фото): Выбирается N фотографий, начиная с некоторой даты, и к этому множеству добавляются ещё не добавленные фотографии всех выбранных дат. Соответственно на главной странице несколько дат, начиная с наиболее новой, на следующей странице — следующие и т. п.<br />«+»: все запросы к базе равнозначны.<br />«+»: нет «суррогатного ключа» — страницы.<br />«-»: ссылка на набор фотографий опять меняется со временем, опять со временем меняются многие (или все) страницы! | ||
+ | ;По датам, разбиение с начала истории: Аналогично предыдущему, но на страницы разбивается не с начала отображения, а с начала истории (начиная с наиболее старых фотографий). Возникает проблема — на главной странице может оказаться мало фотографий. Она решается так: утверждаем, что главная страница будет содержать не одну последнюю страницу, а две последние, так как предпоследняя гарантированно будет полна.<br />«+»: нет «суррогатного ключа» — страницы.<br />«+»: ссылка на набор не меняется со временем.<br />«-» сложность. Требует разбиения ''каждого альбома целиком'' на страницы, а это либо некоторая нагрузка, либо нужен кэш, а кэш нужно инвалидировать, хотя бы при каждом обновлении… | ||
[[Категория:Разработка]] | [[Категория:Разработка]] |
Версия 01:37, 11 декабря 2009
Я против синтетических ключей! Ссылки в Vitaphoto теперь будут по именам — тегов и фотографий, а не по ID (альбомов и фотографий). Самих альбомов не останется вовсе: Vitaphoto: Облака тегов.
/Фото/01-0333 | Фото с именем «01-0333». |
---|---|
/Фото/01-0333/_123 | То же самое, но используется только для тех фотографий, у которых имя файла неуникально. Предполагается, что таких не должно быть вообще. |
/ | Редирект на /Альбом/. |
/хренпоймичто/ | Редирект на /Альбом/хренпоймичто/. |
/Альбом/ | Все фотографии от более новых к более старым. |
/Альбом/Природа/ | Фотографии с тегом «природа» от более новых к более старым. |
/Альбом/Киржач/природа/ | С тегами «Киржач» + «природа». Теги в наборе сортируются по алфавиту, ссылка всегда будет /Киржач/природа/, а не /природа/Киржач/. |
/Альбом/2009-10-11/ | Диапазон, в который попадает дата 2009-10-11 (так реализованы страницы). |
/Альбом/Киржач/2009-10-11/ | Фотографии с тегом «Киржач», диапазон набора, в который попадает дата 2009-10-11 (так реализованы страницы). |
/Альбом/_2009-10-11/ | Специальный случай: теги вида «XXXX-XX-XX» (где X — цифры) предваряются подчёркиванием (пробелом), чтобы отличаться от выборки по дате. |
/name/01-0333 | Обратная совместимость: редирект на /photo/01-0333 |
/pn/01-0333 | Обратная совместимость: редирект на изображение среднего размера фотографии с именем «01-0333». |
/tn/01-0333 | Обратная совместимость: редирект на миниатюру фотографии с именем «01-0333». |
/tag/хренпоймичто/ | Обратная совместимость: редирект на /Альбом/хренпоймичто/. |
/Служебная/ | Путь зарезервирован под прочие функциональные страницы. |
/Служебная/БольшоеОблакоТегов | |
/Служебная/БольшоеОблако | |
/Служебная/BigCloud | |
/Служебная/BigTagCloud | Вместе с предыдущими ведёт на «большое» облако тегов по абсолютно всем фотографиям. |
/Служебная/JSON | Страница, отвечающая на JSON-запросы. |
/Служебная/GlobalAuth | Страница, принимающая запросы глобальной авторизации (от расширения MediaWiki). |
Все ссылки регистронезависимы. Пробелы в названиях заменяются на _ (символы подчёркивания). Первые буквы тегов в ссылках заменяются на заглавные. С «неправильных» ссылок отправляется постоянный (HTTP 301 Moved Permanently) редирект на «правильные», чтобы и поисковики, и пользователи всегда попадали на правильные УРЛы.
Специальные слова подвергаются локализации: «Special» = «Служебная», «Photo» = «Фото», «Album» = «Альбом».
Размышления по поводу страниц и дат — какие можно выделить подходы:
- Банальный (количественный)
- Последовательность фотографий разбивается на отрезки фиксированного размера, последний из которых может быть меньше этого размера.
«+»: максимум простоты.
«-»: при добавлении фотографий меняются абсолютно все страницы альбома, то есть, ссылка — не уникальный идентификатор данных.
«-»: страница — «суррогатный ключ», может искусственно разбивать «желаемое» для просмотра множество фотографий посередине.
«-» (очень маленький): при просмотре последних страниц просматривается всё множество фотографий, то есть запросы к первым страницам несколько легче, чем к последним. Но это некритично, так как нет здесь таких объёмов данных, на которых сканирование индекса приводит к хотя бы каким-нибудь проблемам. - По датам, одна дата на странице
- «+»: просто.
«+»: ссылка на набор фотографий не меняется со временем.
«+»: все запросы к базе равнозначны.
«-»: (существенный!) фотографий за день может быть очень немного, в этом случае страницы будут полупустые. - По датам, несколько дат на странице (минимум N фото)
- Выбирается N фотографий, начиная с некоторой даты, и к этому множеству добавляются ещё не добавленные фотографии всех выбранных дат. Соответственно на главной странице несколько дат, начиная с наиболее новой, на следующей странице — следующие и т. п.
«+»: все запросы к базе равнозначны.
«+»: нет «суррогатного ключа» — страницы.
«-»: ссылка на набор фотографий опять меняется со временем, опять со временем меняются многие (или все) страницы! - По датам, разбиение с начала истории
- Аналогично предыдущему, но на страницы разбивается не с начала отображения, а с начала истории (начиная с наиболее старых фотографий). Возникает проблема — на главной странице может оказаться мало фотографий. Она решается так: утверждаем, что главная страница будет содержать не одну последнюю страницу, а две последние, так как предпоследняя гарантированно будет полна.
«+»: нет «суррогатного ключа» — страницы.
«+»: ссылка на набор не меняется со временем.
«-» сложность. Требует разбиения каждого альбома целиком на страницы, а это либо некоторая нагрузка, либо нужен кэш, а кэш нужно инвалидировать, хотя бы при каждом обновлении…