Выпуск № 434 от 25.07.2009, 15:05
Администратор рассылки: Victor Pyrlik, Модератор
В рассылке: подписчиков - 595, экспертов - 167
В номере: вопросов - 1, ответов - 3
Нам очень важно Ваше мнение об этом выпуске рассылки. Вы можете оценить этот выпуск по пятибалльной шкале, пройдя по ссылке: оценить выпуск >>
Вопрос № 170616: Добрый день. Решил сделать программу по проведению тестов, вопрос возник в реализации базы вопросов. есть 5 типов вопросов, каждый тип хранится в отдельной таблице. Есть ли смысл разделять эти таблицы ещё на таблицы по предметам? То есть делать на ка...
Вопрос № 170616:
Добрый день. Решил сделать программу по проведению тестов, вопрос возник в реализации базы вопросов. есть 5 типов вопросов, каждый тип хранится в отдельной таблице. Есть ли смысл разделять эти таблицы ещё на таблицы по предметам? То есть делать на каждый предмет по 5 таблиц, или проще так и оставить 5 таблиц всего? Заранее спасибо. Надеюсь сделать на этой программе диплом, и применять её дальше, то есть интересует прикладной аспект. СУБД MySQL 5. Язык программирования С++. Спасибо всем кто откликнется.
Я бы оставил разделение только по 5-ти типам. Насколько я понял, данные типы вопросов между собой несовместимы (требуют разной обработки). Ну а для предметов разницы нет, нужен только признак принадлежности вопроса определенному предмету. Не забудьте только проиндексировать поле "Предмет".
Ответ отправил: _Ayl_, Студент
Ответ отправлен: 20.07.2009, 15:17
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 252375
на номер 1151 (Россия) |
Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Отвечает Santana, Студент :
Здравствуйте, Сердюков Павел. Я бы советовал сделать одну таблицу. Только добавить два поля: код предмета и код типа. Так говорит заратустра по имени теория реляционных баз данных
Ответ отправил: Santana, Студент
Ответ отправлен: 20.07.2009, 16:04
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 252377
на номер 1151 (Россия) |
Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Отвечает leonid59, 5-й класс :
Здравствуйте, Сердюков Павел.
1. Прежде всего необходимо отметить, что сам вопрос несколько поспешен, нужно детальное описание бизнес-процесса, в том числе используемых объектов. Количество таблиц - следствие общей стратегии.
2. Ответ на Ваш вопрос в общем виде я бы сформулировал так: а) таблиц должно быть не меньше, чем описываемых классов объектов. Больше - наверняка. К примеру, Вам захочется знать, кто, когда и каким образом редактировал вопросы. Кто и как отвечал на них.
Если это обучающая система, вопросы должны быть как-то связаны. Все это привносит дополнительные таблицы. б) должен быть использован принцип разумной достаточности. При очень сильной нормализации теряется скорость при запросах к связанным таблицам,при недостаточной - дублирование и проблемы целостности. Рассмотрим нашу модель тестов. В любом случае у Вас есть классы и, соответственно, таблицы: Предмет (id, Название); Вопрос(id, Текст, idПр
едмета,..., idТипаВопроса) Допустим, есть вопросы, содержащие картинки (тип 1). Есть вопросы, где нужно сделать выбор из нескольких ответов. (тип 2). Есть вопросы, где нужно по формуле записать ответ (тип 3). Эти типы (классы) являются наследниками от класса "Вопрос". Появляется таблица "Типы вопросов" (id, Название, Описание) Например, для вопросов с картинками можно указать имя файла картинки. Появляется таблица "ВопросыСКартинкой" (id, idВопроса, ИмяФайла) .. Каждый
вопрос может относиться к некоему предмету или, точнее, предметной области. Каждый вопрос может относиться к некоторому уровню, как, например, в RFPRO.RU
3. Бизнес-логика, как правило, описывается в триггерах и хранимых процедурах. одними таблицами не обойдешься.
4. Для квалифицированной работы с базами данных необходимо изучать специальную литературу, и первой книгой я посоветовал бы Мартина Грубера "Понимание SQL"<
br> В любом случае, чтобы более компетентно ответить на Ваш вопрос, необходимо более пространное объяснение, того что будет представлять собой Ваша тест-система.
Ответ отправил: leonid59, 5-й класс
Ответ отправлен: 20.07.2009, 23:27
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 252403
на номер 1151 (Россия) |
Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Нам очень важно Ваше мнение об этом выпуске рассылки. Вы можете оценить этот выпуск по пятибалльной шкале, пройдя по ссылке: оценить выпуск >>
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.