Как лучше хранить мелкие данные в базе?
В самом кратком варианте у вас будет одна таблица, которая будет отвечать за дерево страниц.
Таблица pages:
id - идентификатор страницы;
parent_id - идентификатор родителя страницы;
title - Название страницы
short_name - Краткое наименование (обычно используются для пунктов меню)
alias - имя алиаса для построения url страницы (то что вы указали как type: about, advantages, etc...)
create_date - дата-время создания страницы
update_date - дата-время изменения страницы
content - тело страницы
is_hidden - флаг скрытости страницы (удобно использовать для устаревания страниц)
PS: Посмотрите как это реализовано в любой популярной CMS, похожая таблица и свойства таблиц есть в любой из реализаций.
на сайте есть различные небольшие блоки (о нас и тд). Встречаются они единожды, но должны редактироваться менеджером -> храниться в базе.
Это различные небольшие блоки по смыслу ближе к обычным файлам в файловой системе.
Файловая система - наиболее гибкая и толерантная в данном варианте использования.

Но поскольку у вас стоит такое требование как хранить в базе - отсюда и возникает вопрос.
А с каким ключом туда это все ложить? Ключ должен быть осмысленным настолько чтобы эти
блоки потом найти и не потерять. И это даже не с нормализацией а скорее просто с особенностями
подобных хранилищ. Key-Value очень быстро захламляется и превращается в свалку или кладбище
документов без внятного понимания нужны они или нет.

Если url будет ключом - то это хорошо.