Консультация № 176024
13.01.2010, 22:46
0.00 руб.
0 6 0
Здравствуйте уважаемые эксперты!
Нужна ваша помощь в таком вопросе:
делаю Тест с талкнулся с проблемой таблиц. Я так понимаю, что здесь будет 2-я нормальная форма т.е. будет 3 таблицы. 1-я с вопросами, 2-я- будет пользовательская (сюда записываю пользователя и в конце записывается результат) и вот должна быть третья Я предпологаю, что в ней нужно создать 7 ячеек (шкал как написано в тесте) так вот с чем ее связать?
Если можно то просто покажите на картинке таблицы со связью, всё остальное сделаю сам.

Обсуждение

давно
Мастер-Эксперт
425
4118
14.01.2010, 10:48
общий
Savter:
Тут, скорее, будет 4 таблицы:
1. Вопросы - номер_вопроса, текст_вопроса.
2. Список отвечающих - номер_отвечающего, ФИО_отвечающего.
3. Ответы на вопросы отвечающего - номер_отвечающего, номер_вопроса, ответ.
4. Результирующая таблица, где для каждого отвечающего хранится его результат после соответствующей обработки ответов (или цифровой показатель).
Почему для отвечающих нужна отдельная таблица? Возможно тест будет проходиться одним и тем же человеком неоднократно и заводить его же по нескольку раз будет нехорошо, т.к. возможны ошибки в написании ФИО и получится, что сдаёт один и тот же, а из за синтаксической ошибки как будто это два разных человека.
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
Неизвестный
14.01.2010, 19:32
общий
sir Henry:
По нескольку раз тест не должны проходить, даже если его пройдут то я предусмотрел сортировку в базе, что в принципе покажет одинаковых пользователей. (делаю по конкретному заданию поэтому таких требований не предъявляли).
Вот нарисовал подскажите так должны быть таблицы и связи или нет

Хотя по сути в результирующей таблице мне не нужен номер вопроса, т.к. они всегда одинаковые и идут по порядку, тогда там нуно будет вывдить только пользователя и его ответы.
давно
Мастер-Эксперт
425
4118
15.01.2010, 07:40
общий
Savter:
В принципе нормально.
Цитата: 292624
Хотя по сути в результирующей таблице мне не нужен номер вопроса

Мне тоже так кажется. В результирующей таблице должны быть только пользователь и его результаты, т.е. ИД, ИН, и тп. Как я понял из теста, эти показатели не привязаны к конкретному номеру вопроса, а являются некой суммой по нескольким ответам. Или я ошибаюсь?
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
Неизвестный
15.01.2010, 20:21
общий
sir Henry:
Да получается так складываем их все, а потом есть еще одна таблица которую мне дали в задании там сумма этих баллов переводится в еденицы от 1 до 10 и пользователю как я понял просто выводятся эти шкалы по ИП = 5 ИН =3 и тд.
Такой вопрос если я свяжу две таблицы то выводить мне придется писать (раньше я просто писал Select user where "*"), а теперь придется выводить что то типа
Select users, award where (и перечислять все столбцы таблиц?) ?
давно
Мастер-Эксперт
425
4118
16.01.2010, 07:31
общий
Savter:
В операторе SELECT можно выводить как столбцы из одной единственной таблицы, так и из нескольких таблиц, объединяя (связывая) эти таблицы по определённым полям.
В первом случае Вы либо указываете после слова SELECT звёздочку (*), если хотите видеть все столбцы, либо конкретные названия столбцов.
Во втором случае Вы должны более строго подойти к выбору тех столбцов, которые Вы хотите показывать, т.к. чем больше столбцов выводимых для просмотра, тем ужаснее это выглядит.
При выводе, Вы название поля должны предварять названием таблицы, например:
Код:
SELECT таблица1.поле1, таблица2.поле1, таблица1.поле2, ... FROM таблица1 INNER JOIN таблица2 ON таблица1.поле_связи=таблица2.поле_связи

Таким образом у Вас в запросе появится объединённая информация из двух таблиц, связанная по полям связи.
Ещё раз повторюсь, что между словами SELECT и FROM должны быть только те поля, которые Вы хотите видеть, но никак не все поля, котрые содержаться в таблицах.
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
Неизвестный
17.01.2010, 21:26
общий
Savter:
Добрый вечер.
1. Таблица отвечающих
2. Таблица вопросов
3. Таблица ответов (Вопрос, Отвечающий)
4. Справочник шкал
5. Таблица результатов (Отвечающий, номер шкалы)
Получаются длинные таблицы, зато программировать проще, чем с 7-ю поляим.
Форма ответа