или лучше хранить голоса только в таблице «likes_dislikes» и подсчитывать количество голосов с запросом каждый раз?
Да, это было бы лучше, во-первых, потому что вам уже нужно выполнить запрос, и время подсчета симпатий и антипатий из связанной таблицы не будет иметь заметной разницы. Во-вторых, как указано в @kmas, нормализуйте свою базу данных, чтобы не дублировать данные. Если user_id таблицы posts будет соответствовать всем user_id для одного и того же post_id таблицы lik_dislikes, я бы поместил их все в одну таблицу, но я не считаю, что это так. Исправьте меня, если я ошибаюсь, но user_id в таблице lik_dislikes - это пользователь, который проголосовал, а user_id таблицы сообщений является владельцем сообщения. Чтение базы данных происходит намного быстрее, чем запись в базу данных. Если вам придется писать в дополнительную таблицу каждый раз, когда стихи читаются из дополнительной таблицы каждый раз, я бы пошел с чтением. Это не только сделает вашу базу данных нормализованной, но и упростит ваш код.
О, и для вопроса Right now I have 14 columns in the 'posts' table. Is that too much?
, Нет 14 столбцов, определенно, не слишком много столбцов для одной таблицы. У меня есть база данных с 55 + таблицами одна таблица с 275 столбцами, одна из которых содержит 158 столбцов и множество других больших таблиц. Хитрость здесь заключается в том, чтобы никогда не запускать SELECT * FROM posts
и выбирать только те столбцы, которые вам нужны, и использовать там, где условия с хорошей индексацией.
Спасибо за ваше время, отвечая на мой вопрос! –