Актуальность

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

Новый старый Музыкальный радар

Стартовал процесс перехода на Notion. Открывает действие рубрика Музыкальный радар, которая теперь представляет из себя целый проект, который может любой желающий использовать в качестве шаблона.

Вот так выглядит рутовая (корневая) страница:

Теперь подробнее о главной и вложенных страницах...

Главная

Под заголовком размещены ссылка на вложенные страницы. Все они представляют из себя таблицы данных с референсами друг на друга.

Под навигацией выводится самое главное - список публикаций. Раскрыть страницу публикацию можно, нажав на кнопку "Open" у названия статьи. Колонка "URL" будет убрана, когда я полностью перемещу ранее опубликованное средствами ВК-шных Статей. Вместо указанного поля, будет выводиться дата публикации.

Под списком публикаций, можно наблюдать самое прикольное, то, что дал именно переход в Notion - получение статы за счёт связей между сущностями. Рядом с заголовком можно видеть переключатель представления, на скрине используется "Top", который сортирует исполнителей по их рейтингу в данной рубрике. О том, как организована система оценки - расскажу далее в тексте.

Публикации

База публикаций.

Страница публикации.

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

Основное содержимое размещено под полями и секцией комментариев - непосредственно текст публикаций.

Исполнители

База исполнителей.

Страница исполнителя.

AKA сущность Artist.

  • Поле "Type" перставляет собой энум, возможные значения: 👥 - для групп; 👨 - для исполнителей мужского пола; 👩 - для обозначения исполнителей женского поля;
  • "Avatar" используется для хранения изображений исполнителя, в частности для представления в виде карточки (например, для организации списка "Top");
  • Поля "Albums", "Songs" и "feat. Songs" - заполняются в базах альбомов () и песен () соответственно;
  • Поля "Album count", "Song count" и "feat. Song count" - просто подсчитывают количество соответствующих связей из предыдущего пункта. Да, эти поля интересны сами по себе, типа в качестве статы, но создавались они для другого, продолжай читать;
  • "Song awards" и "feat. awards" - суммируют значения из базы . Зачем? читай дальше;
  • Поле "Rating" - ради этого поля были созданы поля из двух предыдущих пунктов - рейтинг. На нём остановлю чуть подробнее...

Рейтинг

На текущий момент, используется следующая формула:

jsx
prop("Album count") * 3 + prop("Song count") * 1 + prop("feat. Song count") * 0.5 + prop("Song awards") + prop("feat. awards") * 0.5

Т.е. за попадание в сборник (за каждое вхождение)...:

  • альбома - даётся 3 балла;
  • песни - даётся 1 балл;
  • в качестве feat-ового исполнителя песни - 0.5 балла;
  • с награждением, читай далее "Награды" (), в зависимости от участия в песне:
    • в качестве основного исполнителя - полные очки;
    • как feat-овый исполнитель - половинные.

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

Песни

База песен.

Страница песни.

AKA сущность Song. Это самое главное место всего проекта. Тут хранятся названия всего того, что составляет сборники - трэки. В качестве мета-информации - исполнители песен, с разделением на основного и фитовых. Так же тут имеется поле "Award" - нововведение выпуска #2. Ну и ещё пара полей, которые составляют статью: ссылка на трэк в YouTube, чтобы можно было слушать не отходя от кассы, и мои комментарии - используются в последствии при оформлении публикации.

INFO

К сожалению, Notion пока не позволяет в текст страницы встраивать содержимое поля, поэтому "Description" я тупо копи-пастю в публикацию.

Альбомы

База альбомов.

Страница альбома.

AKA сущность Album. Тут всё крайне просто. Для альбомов не предусмотрено наград, так как само попадание целого альбома в сборник говорит о высокой оценки трудов исполнителя, который и указывается в связующем поле "Artist".

Награды

База наград.

Страница награды.

AKA сущность Award. Вообще, данную функцию можно было реализовать через enum (или select-поле, как оно называется в Notion) в базе песен, если бы не один момент... для подсчёта рейтинга необходимо, чтобы награда имела вес, балл. Для гибкого решения этой проблемы и была создана данная база и поле "Value" в ней. В качестве бонуса такой реализации, получаем список всех треков, которые удостаивались соответствующей награды. Кайф!

Бонус

Самое прикольное в работе с Notion, что можно требуемую имеющуюся реализацию, буквально в несколько кликов, переключить в другое представление со смещением акцентов. Например, база исполнителей с надстройками:

  • Top - свой чарт исполнителей;
  • Dark horses - исполнители, которые присутствуют в сборнике только в качестве feat-ового исполнителя.

Ну и величайший кайф - связи, ссылки. Целостность и структурированность данные - это моя аутистическая слабость. Изменил название песни, автора или публикации - и это изменение применилось ко всем упоминаниям данной записи где-либо.