Если два вас накрутка не критична, то лучший вариант куки/локалсторейдж и т.д., в общем вынести это в клиента.
Если критично, то сделайте простую табличку с двумя полями айпи(любой другой идентификатор) и айди новости. Сделайте уникальный индекс из этих двух полей. Простым джоином, при получение данных о новости вы узнаете голосовал уже этот клиент или нет, а от повторного голосования без перезагрузки спасет индекс, и не надо самому проверять.
И не надо пхп обработчику проверять что там в базе при лайке, пусть это сама база делает. Посылайте просто инкримент или декримент, и в ответ запрашивайте уже что там получилось.
Ну и по окончании какого-то периода лайки можно отключать, а табличку чистить. Можно избавиться и от хранения цифр в самой новости, а просто считать суммы по табличке логов +), но все зависит от вашего объема данных.