Что за медальки можно прочитать здесь:
https://cnc-club.ru/forum/viewtopic.php?f=18&t=1062

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

Судя по всему сейчас медалек на форуме нет, так как их оригинален и похоже его не стали портировать после перехода на новый релиз phpbb.\

@cocucka @crypt как вам такая идея?

  • deep-purple
    link
    fedilink
    arrow-up
    0
    ·
    3 years ago

    Распиши (а лучше спроектируй) подробно как ты видишь реляционку этой байды. Какие там будут нормальные формы-шмормы, индексы-пиндексы, запросы-напросы.

    • torvn77OP
      link
      fedilink
      arrow-up
      0
      ·
      3 years ago

      Это черновик_

      С моего ничтожного опыта базы мне представляются таблицами на манер ассоциативного массива bash.

      Пользовательская таблица состоит из столбца тегов, столбца с списком постов каждый элемент которого состоит из id поста, момента времени когда пользователь этот тег добавил и флагов статуса поста(кем сделан, ОП или простой/одиночныйй или начало треда, количество ответов), а так же столбец с комментариями пользователя о причинах назначения того или иного тега.

      Общефорумная БД является состоит из отдельных субБД в котором каждая субБД посвящена одному тегу и состоит из столбца с id постов и столбца флагов поста в формате аналогичном формату флагов пользовательской таблицы.

      Так же для облегчения борьбы с вандалами надо вести двух дневный или недельный лог назначения тегов с записью какой пользователь какие теги назначил.
      (например один шутник присвоил всем постам гомогрима тег С, а другой шутник тег Раст, понятно что такое назначение тегов следует откатить, при этом надо не затронуть посты гомогрима в которых он действительно что-то говорит о этих языках, при этом операции производятся только с общефорумной БД тегов, личные БД пользователи админят самостоятельно)

      Как всё это будет работать?
      Рассмотрим сразу случай когда у поста уже есть один и более тегов.
      Эти теги берутся из общефорумной БД по этому у пользователя есть две возможности.
      Добавить или удалить один или несколько тегов этого поста в личной БД(возле каждого тега есть плюс или минус в скобках).
      Добавить посту новый тег с занесением его в общефорумную БД с автоматическим добавлением в личную БД.

      Ну и несколько видов запросов к БД.
      Запрос только к личной БД,

      <<<

      • deep-purple
        link
        fedilink
        arrow-up
        0
        ·
        3 years ago

        мне представляются таблицами на манер ассоциативного массива bash

        Открой Calc – вот тебе столбцы и строки.

        Пользовательская таблица состоит из столбца тегов, столбца с списком постов

        Допустим.

        каждый элемент которого состоит из id поста, момента времени когда пользователь этот тег добавил и флагов статуса поста

        Видимо речь о no-SQL решении. Или мы будем хранить в полях таблицы кучки JSON-гавяшек?

        состоит из отдельных субБД в котором каждая субБД посвящена одному тегу и состоит из столбца с id постов и столбца флагов поста в формате аналогичном формату флагов пользовательской таблицы

        Ну давай для начала разжуём терминологию.

        БД – она, как правило, одна на всё. Ибо нет смысла ради одного или кучки тегов держать отдельное хранилище.

        Внутри БД лежат таблицы.

        У таблиц есть поля.

        SQL-запросы являются, именно что, запросами к движку БД, которые явно говорят, что нужно выбрать. Самый простой пример:

        SELECT [список полей] FROM [имя таблицы] WHERE [условия выборки]
        

        Если тебе нужно привязать более одного тега к одному посту, то классическим вариантом будет три таблицы типа (пишу в виде “таблица: поле1, поле2, полеN”) таких:

        posts: id, title, body

        tags: id, name

        posts_tags: post_id, tag_id

        Допустим, в таблицах лежат следующие данные:

        posts:

        1, ‘название поста’, ‘текст поста’

        tags:

        1, ‘тег1’ 2, ‘тег2’

        posts_tags:

        1, 1 1, 2

        Чтобы сделать выборку всех тегов поста, используется джойн:

        -- выбрать
        SELECT
        
                -- поля из таблицы тегов
                tags.id,
                tags.name
        
            -- но начинаем тащить из таблицы постов
            FROM posts
        
            -- присоединяем таблицу связей постов и тегов, где айди поста наш
            LEFT JOIN posts_tags
                ON posts_tags.post_id = posts.id
        
            -- теперь присрединяем таблицу тегов, где теги наши судя по таблице связей
            LEFT JOIN tags
                ON tags.id = posts_tags.tag_id
        
            -- где нужный айди поста в таблице постов
            WHERE posts.id = 1;
        

        (ну пиздец, подсветка не парсит комменты)

        А вот теперь, уже лучше понимая, как это работает, повтори попытку проектирования.

        • PhysShell
          link
          fedilink
          arrow-up
          0
          ·
          3 years ago

          подсветка не парсит комменты

          -- выбрать
          

          Парсер первый коммент обработал и заткнулся.