В принципе, один вопрос может иметь несколько ответов. Каждый ответ может привести к нескольким вопросам. Это может продолжаться на нескольких уровнях. Вот очень простое описание того, как я подхожу к решению этой проблемы ...
Вот предлагаемая структура справочной таблицы:
таблица: Вопросы (QId, QuestionText) все вопросы сохраняются здесь
таблица: Ответы (AId, AnswerValue) все возможные ответы здесь (да, нет, холодно, жарко, тепло, не работает и т. Д.)
таблица: QuestionAnswers (QAId, QId, AId) Здесь хранятся комбинации ответов на вопросы (работает ли переменный ток? Да / нет)
таблица: RelatedQuestions (QAId, QId) для данной комбинации вопросов и ответов на вопрос, какой следующий набор вопросов нужно задать («работает ли переменный ток - нет», а затем спросите », есть ли у вас власть? , у вас есть кондиционер в доме "," это автомобиль или домашний кондиционер? ")
Вот предлагаемая структура таблицы данных:
таблица: CustomerInfo (CuId, CDetails ...) одна запись на клиента
таблица: ContactInfo (CId, Cdetails ...) одна запись при каждом контакте с клиентом
таблица: QASeriesForContact (QACId, CId, SearchTerm) условие / проблема поиска (вы можете иметь несколько из них на один вызов, верно?)
таблица: QASeriesDetails (QASDId, QACId, QAId) для каждой проблемы, отслеживать ответы на вопросы до разрешения
Я знаю, что нам придется изменить это немного, чтобы удовлетворить ваши потребности - уйти, и я сделаю все возможное, чтобы помочь.