:: urbansheep (urbansheep) wrote,
:: urbansheep
urbansheep

Categories:
  • Music:

[ utx ] Идеи и структура базы, или почему всё так, как есть.

Что хранится в базе:

  • Само собой, там хранится ссылка на запись
  • Категория записи
  • (добавлено) Пользователь, в карту которого, добавлена запись

Задачи, которые мы решаем:

  • Я хочу получить архив записей, который разбит по категориям.
  • Категории определяются мной, что значит, что если кто-то решит писать в категории stuff о „всякой ерунде“, а я решу писать в этой же категории stuff о действии психоактивных веществ, то мне вовсе не хочется смешения одного и другого.
  • Я хочу получать записи других людей по той же теме (из предыдущего пункта видно, что не обязательно это записи, живущие под одноимённой категорией)
  • Я не хочу ограничиваться только своими записями (изначально система задумана под однопользовательское/однокомандное применение, и подразумевала возможность добавления в базу любых страниц в интернете), и мне нужна возможность добавлять в мою карту записи других пользователей livejournal.</p>

    Они не обязательно должны быть пользователями ютх, при помощи простого клиентского скрипта:

    <div id="plUtxSpt"></div>
    <script>
    function plUtxSptF() {
      plUtxSptCat = plUtxSptCntSrc.value;
      plUtxSpt.insertAdjacentHTML('BeforeEnd','<a href="http://utx.ambience.ru/users/your_lj_id/' + plUtxSptCat + '"><img hspace="5" vspace="5" alt="' + plUtxSptCat + '" src="http://utx.ambience.ru/img/your_lj_id/' + plUtxSptCat + '" height="5" width="30" style="background:#c00;" border="0"></a>');
      plUtxSptCntSrc.value = '';
    }
    </script>
    <div id="plUtxSptCnt" style="padding:10;"><input type="text" style="width:200;" id="plUtxSptCntSrc"> <button onclick="plUtxSptF();return false;">place utx category</button>
    </div>

    картинку категории можно добавить куда угодно, сам скрипт внедряется в страницу либо через локальный прокси (proxomitron), либо, при желании — через bookmarklet.

Я понимаю, что пока в системе нет авторизации, любой сможет добавить в мою карту категорий свою запись и, при желании, заспамить других пользователей. И я не понимаю, как реализовать совмещение двух требований — открытости и антивандальной стойкости.

Пока можно сделать следующее:

  1. Использовать некий механизм авторизации (см. запись [ » ] „Авторизация и карты пользователей“). При этом карта пользователя создаётся только при его первом логине. До того никакие данные не сохранятся. Никто, кроме самого пользователя, не может добавить запись в его карту (идентифицируем пришедший рефёрер по cookie).
  2. Если владелец хочет, чтобы с его картой работал кто-то ещё, он может вручную добавить их в список „доверенных лиц“. Это позволит работать в том числе с сообществами.
  3. Для того, чтобы достичь главной идеи — видеть, кто ещё писал о том же, предлагается ввести редактирование категорий. Так, что я вручную могу сопоставить нашу категорию [ » ] 500ISF с категорией [ » ] daa50 лжеюзера gadyuka. C возможностью в дальнейшем вытаскивать интересующие нас записи автомагически.
  4. Другим достоинством редактора категорий является то, что можно самостоятельно назначать любые иерархии — связи делятся на три варианта:
    • охватывающие (так, music будет охватывающей для dj_food)
    • связанные („также по теме“ — пример с 500ISF и daa50 выше)
    • дочерние (dj_food будет дочерней по отношению к music)
    В итоге можно строить почти любые по сложности системы, не усложняя интерфейс для ввода записи в базу.

Subscribe
  • Post a new comment

    Error

    Comments allowed for friends only

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 9 comments