Сергей, примерно такой, просмотры можно хранить в записи поста или новости, просто инкрементить счётчик update news set views = views + 1 where id = 1
А лайки в отдельной таблице
id | user_id | news_id(возможно даже тут будет поле type где будет записан тип , новость или пост или ещё чего), sub_id (ид объекта)
insert into (user_id, type, sub_id) values (1, 1, 1)
Выборка
select * from news join likes on news.id = likes.sub_id where cat = 1 limit 10, 10
Все зависит от того где хранятся ваши записи, то есть что просматривать и лайкать будут. Можно таблицу завести, можно и в файлик рядом положить
Если нужно будет выводить список юзеров, то бд. Для вывода портов все равно запрос нужен будет, можно будет join сделать для доп информации