Одна общая таблица с постами и их айдишками
По дополнительной таблице с доп полями под конкретные случаи, которые ты будешь джоинить (есстественно по-нормальному для этого нужен какой-то пакет, релейшены не к месту).
Поля в доп таблице могут иметь айди поста как primary key без проблем, своя айдишка им не нужна.
json поле типа meta - тоже вариант, но он медленней. Если выборки и связи не нужны или не особо нужны, то это вообще отличный вариант.
Отдельная таблица meta_name и meta_value - это вообще худший из худших вариантов. Ни плюсов отдельных таблиц, ни какого-то профита над обычным json полем (потому что если тебе сильно нужны выборки, то отдельные таблицы дают тебе типы, нормальную индексацию, нормальные констреинты, форейны и прочее, а если не нужны - то json тупо проще отдельной таблицы). Выбирай из двух вариантов выше.