Как реализовать хэштеги?
Не согласен с выбранным ответом, по следующим причинам:
1) Не надо ничего разбивать по запятым. Нужно использовать плагин Select2 который уже написан для этого. Он как раз присылает готовый массив, который можно вставить сразу в таблицу.
2) Нарушается принцип нормализации данных. Что если будет 500 тэгов, например с меткой "PHP" то 500 раз нужно будет хранить три байта? А если тэг длинее и записей 500?
А теперь правильный ответ:
Теги и статьи - это связка Many-To-Many, что означает, 
1. Статьи храним в одной таблице (id, name, ....)
2. Теги в другой (id, name)
3. Теги и статьи ничего не знают друг о друге и полностью независимы
4. Для связки вводится третья таблица (Junction table), которая отвечает за связку ID ов. (tag_id, article_id)
5. Используем любой PHP фреймворк для упрощения работы с Many-To-Many.
да все верно
- пользователь указывает: тэг-1, тэг-2 ... тэг-x
- разбиваешь по запятым и добавляешь в базу, например в табличку:
post_id | int
tag | varchar
- дальше уже можешь подбивать топ или делать любые другие операции