IMO, пара ключ-значение (например, базы данных NoSQL) работает лучше всего, когда базовые данные неструктурированы, непредсказуемы или часто изменяются. Если у вас нет структурированных данных, у реляционной базы данных будет больше проблем, чем стоит, потому что вам нужно будет сделать много изменений схемы и / или перепрыгнуть через обручи, чтобы согласовать ваши данные со структурой.
KVP / JSON / NoSql великолепен, потому что изменения в структуре данных не требуют полного рефакторинга модели данных. Добавление поля к вашему объекту данных - это просто вопрос добавления его к данным. Другая сторона медали в том, что в базе данных KVP / Nosql меньше ограничений и проверок, чем в реляционной базе данных, поэтому ваши данные могут запутаться.
Для реляционных моделей данных есть преимущества в производительности и экономии места. Нормализованные реляционные данные могут упростить понимание и проверку данных, поскольку существуют ключевые взаимосвязи таблиц и ограничения, которые могут вам помочь.
Один из худших паттернов, которые я когда-либо видел, - пытаться использовать его в обоих направлениях. Попытка поместить пару ключ-значение в реляционную базу данных часто приводит к катастрофе. Я бы порекомендовал использовать технологию, которая подходит для ваших данных в первую очередь.