Я пишу очень простой скрипт PHP для опросов. В настоящее время он может обрабатывать только один опрос за раз. Схема базы данных выглядит так:

table 1: questions
    primary key: question_id
    second field: question
table 2: answers
    primary key: answer_id
    second field: answer
    foreign key: question_id

У меня есть раздел администратора в этом скрипте, который позволяет мне добавлять по одному вопросу за раз. Я также сделал возможным добавлять переменное количество ответов на каждый вопрос. У меня проблемы с двумя вещами:

  1. Как я могу убедиться, что у каждого добавляемого переменного количества ответов есть внешние ключи, которые ссылаются на правильный вопрос? Мне нужно INSERT вопрос, затем SELECT его, чтобы найти его идентификатор, а затем INSERT ответы? Я чувствую, что должен быть лучший способ сделать это.
  2. Как лучше всего добиться того, что я пытаюсь сделать? Моя схема базы данных - мусор? Нужна ли мне куча запросов, чтобы выполнить то, что я хочу? Я плохо владею SQL: /

Благодарность!

Gerard

2
GRardB 28 Авг 2011 в 18:36

2 ответа

Лучший ответ

Сначала вам нужно вставить вопрос. Затем вы можете использовать $questionId = mysql_insert_id();, это даст вам сгенерированный идентификатор последней вставки. Теперь вы можете использовать это, чтобы правильно вставить свои ответы.

0
Lasar 28 Авг 2011 в 14:39

Ваша схема базы данных хороша, и три запроса подходят. Хотя вы можете использовать функцию API вместо второго запроса, но на самом деле это не имеет никакого значения. Обратите внимание, что вы все равно не должны выбирать свой вопрос, а специальную функцию mysql, называемую LAST_INSERT_ID ();

Единственное, что вы забыли, это поле для отметки правильного ответа / точки ответа или чего-то подобного

1
Your Common Sense 28 Авг 2011 в 14:40