Если вы хотите, чтобы ваш пользователь ввел произвольные пары ключ => значение, вы можете посмотреть на вертикальную таблицу. Что-то вроде:
post_id, keyname, keyvalue
1, 'name', 'teddybear'
1, 'price', '1.99'
2, 'colour', 'fuchsia'
78, 'mother', 'Diana'
78, 'father', 'Bob'
78, 'pet', 'Fido'
Каждый из этих ключей / значений связан с записью (post_id), в которой они были созданы. Это также работает достаточно хорошо, когда у вас есть много вариантов для пользователя, но очень мало когда-либо будет выбрано. К минусам этого решения относятся: а) вы больше не можете использовать преимущества автоматической типизации и б) индекс не так полезен, поскольку типы значений смешаны.
Если у вас есть система, в которой параметры четко определены, вы должны спроектировать таблицы так, чтобы они соответствовали этим параметрам. Преимущества автоматической типизации и индексирования обычно перевешивают гибкость изменения вашей очевидной структуры данных на лету.