Я создаю настольное приложение как часть моего последнего года обучения в университете с использованием Qt.
Это платформа для таинственных покупок, где вы входите в нее, выбираете работу (например, идите в ресторан) и проводите опрос, основываясь на своем опыте.
Вопросы будут такими, как:
«Дата и время посещения» «Играла ли музыка на соответствующем уровне громкости (легко разговаривать, но все равно слышать, что играет)»
«Как бы вы оценили качество еды / 5?» И т. Д.
Как / где я буду хранить эти опросы? База данных? Но это может иметь около 60+ вопросов (и, следовательно, столбцы.)
Мне также нужно включить ответы на вопросы в нем.
Кроме того, один из уникальных аспектов этого заключается в том, что опросы сделаны специально для клиента, где опросы будут очень разными. поэтому наличие базы данных ограничит ее.
Я не уверен, что лучший способ продвинуться в этом, не могли бы вы дать мне какие-нибудь мысли?
Есть много способов решить эту проблему.
Одним из них является наличие некоторого хранилища значений ключей для атомарных значений (вопросов, ответов), или вы можете использовать некоторую базу данных NoSQL с обменом JSON.
Если вы не хотите использовать базу данных, я бы предложил вам одно из решений, которые мы используем для нашего текущего проекта.
Мы используем RabbitMQ в качестве брокера сообщений, который помещает сообщения Google Protobuf в различные темы Kafka.
Таким образом, мы можем контролировать поток запросов / ответов. Protobufs также не зависят от платформы, поэтому он позволит кому-то, кто будет использовать ваше приложение, отправлять и извлекать данные protobuf и отображать их везде (в Интернете, на телефоне, в другом приложении). Кафка даст вам настойчивость, в которой вы нуждаетесь, и у него есть хорошая возможность воспроизвести все.
Таким образом, теоретически вы сможете увидеть все опросы с начала времен до настоящего времени.
Я не знаю, отвечает ли это на ваш вопрос или нет, но я надеюсь, что это даст вам некоторое представление.
Ах да, и ссылки на вещи, которые я упомянул.
librdkafka
Простой AMQP для RabbitMQ
Протобуф для С ++
Для значения ключа мы используем LevelDB
но вы можете использовать Redis или MemSQL.
Других решений пока нет …