Форум: "Базы";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];
ВнизПомогите разработать структуру БД Найти похожие ветки
← →
Drakosha (2004-09-01 11:49) [0]Задача такова:
Написать программу тестирования-тобишь приходят кандидаты им дают N-вопросов, они отвечают и всё это хранить нуна.
Пока создал таблицу с информацией о тестируемых и таблицу с вопросами и ответами(иерархическую )
и вот теперь нужно гдето хранить результаты
Сразу подумал создать таблицу что то типа id/id_тестируемого/id_otveta
... но потом подумал ... тестируемых предполагается что то типа 400 000 ...вопросов каждому 40-60
получается в таблице будет храниться около 400 000*40 записей(а если делать историю то ещё больше) что собственно и пугает
Какие будут идеи?
← →
Плохиш © (2004-09-01 11:53) [1]Сумма не названа, к сожалению :-(
← →
Drakosha (2004-09-01 12:01) [2]:-) ути какой ты быстрый ..
я ж не прошу её написать ... я прошу помочь советами
... просто сейчас я в результатах храню id_человечка и в стоковом поле через запятую его ответы - что не есть гуд.
← →
Reindeer Moss Eater © (2004-09-01 12:03) [3]Храни через точку с запятой.
← →
Drakosha (2004-09-01 12:04) [4]2 Reindeer Moss Eater
и ты считаешь что так хорошо? ... некрасиво как то :-(
← →
Роман Снегирев (2004-09-01 12:06) [5]если грамотно то без третьей таблицы не обойтись: там вообшем должны бать id вопроса и id ответа
← →
Drakosha (2004-09-01 12:11) [6]обоснуй.
у меня и так и таблицы:
1. инфа о человеке
2. вопросы ответы
3. результаты тестирования
← →
Роман Снегирев (2004-09-01 12:13) [7]а что за таблица "вопросы ответы" вот она то собственно и нужна а "результаты тестирования" имхо лишнее
← →
Drakosha (2004-09-01 12:22) [8]вопросы ответы:
1 id идишник
2 data данные(блоб)
3 status (1 символ служебная инфа)
4 ссылка на 1
получается типа так:
раздел1
вопрос1
ответ1
ответ2(в статусе "T" если это правильный ответ)
вопрос2
ответ1
ответ2
ответ3(в статусе "T" если это правильный ответ)
раздел2....
← →
Роман Снегирев (2004-09-01 12:24) [9]а че , количество разделов переменное?
← →
Sergey13 © (2004-09-01 12:27) [10]2Drakosha (01.09.04 11:49)
А какая БД предполагается? В принципе 16млн записей не так уж и много. К тому же сомнения меня берут про 400 000 человек.
Тут важно, что ты с результатами делать будешь. Если просто хранить, то оставь как есть, через запятую (или [3] 8-). Если нужен анализ ответов, то надо ИДчеловека-ИДответа наверное хранить.
← →
Роман Снегирев (2004-09-01 12:30) [11]зачем хранить id человека если оно есть в таблице вопросов?
← →
Sergey13 © (2004-09-01 12:33) [12]2[11] Роман Снегирев (01.09.04 12:30)
>зачем хранить id человека если оно есть в таблице вопросов?
Где оно там?
← →
Drakosha (2004-09-01 12:34) [13]2 Sergey13
бд оракл
400 000 будут а то и больше (для получения лицензий нуна проходить тетстирование)... ну естественно не сразу все но будут :)
2Роман Снегирев
ну чтоб по идишнику челвека получить результаты его теста
в таблице рузультатов ид человека и будет ключём :) сори за путаное обьяснение
← →
Sergey13 © (2004-09-01 12:38) [14]2[13] Drakosha (01.09.04 12:34)
Ораклу пофиг такие цифири, есно если железо боле-менее ничего.
А насчет дальнейшей обработки?
← →
Роман Снегирев (2004-09-01 12:42) [15]ну чтоб по идишнику челвека получить результаты его теста
в таблице рузультатов ид человека и будет ключём :) сори за путаное обьяснение
ну и в чем тогда проблема?
← →
stud © (2004-09-01 12:45) [16]так что нужно хранить-то в таблице результатов? если просто факт сдачи/не сдачи теста, через запятую 0 или 1. в противном случае нужно знать какие данные сохранять
← →
Drakosha (2004-09-01 12:56) [17]бррр
Кароче пока я вижу 2 варианта в таблице результатов
1 - хранить на каждого человечка 40-60 записай и идишниками ответов
2 - хронить на каждого человечка одну запись с полем вида ид1,ид2...ид60. (иди ответов )
2 - не очень красиво и могут проблемы возникнуть с последующей обработкой(какие ещё не знаю)
1 - пугает количество записей
... мдя ... теперь даже не знаю как сформулировать вопрос :)
что оптимальнее 1 или 2 ?
← →
stud © (2004-09-01 13:00) [18]а ид вопросов? зачем хранить ид ответа, не зная вопроса? кроме того например может понадобиться дата проведения тестирования...
← →
Sergey13 © (2004-09-01 13:01) [19]2[17] Drakosha (01.09.04 12:56)
Вариант 1 и не парься, если подразумевается какая то "обработка".
← →
Drakosha (2004-09-01 13:02) [20]2stud
по иди ответа я могу узнать иди вопроса (иерархическая там у меня таблица)
дата проведения тож имеется просто ломало набивать все поля
← →
stud © (2004-09-01 13:07) [21]
> Вариант 1 и не парься, если подразумевается какая то "обработка".
все зависит от дальнейших аппетитов))
← →
Drakosha (2004-09-01 13:07) [22]2Sergey13
скорее всего так и поступлю ... просто интересно что никто ни с чем подобным не сталкивался
← →
Flagman © (2004-09-01 13:10) [23]Поддерживаю [19]
Иначе потом нужно будет строку парсировать, а это потеря времени...
Да и к [14] - Поставить нормальный сервер со SCSI-RAID-ом, и все в порядке будет. Оракл штука мощная... ;)
← →
Sergey13 © (2004-09-01 13:41) [24]2[22] Drakosha (01.09.04 13:07)
>скорее всего так и поступлю ...
"И это правильно." (с) М.С. Горбачев 8-)
>просто интересно что никто ни с чем подобным не сталкивался
Ну прям Америку ты отклыл. 8-) Сталкивались. Многие. Отсюда и советы.
← →
Роман Снегирев (2004-09-01 13:58) [25]да нет никакой таблицы результатов, должна быть "третья" таблица где хранится
1)id вопроса
2)id ответа
3)id отвечающего
вот и все и не надо "лохматить бабушку" (М. Задорнов)
← →
Sergey13 © (2004-09-01 14:01) [26]2[25] Роман Снегирев (01.09.04 13:58)
>1)id вопроса
Зачем?
> и не надо "лохматить бабушку" (М. Задорнов)
С этим соглашусь. 8-)
← →
Vit@ly © (2004-09-01 14:09) [27]
> ... тестируемых предполагается что то типа 400 000 ...
Завидую...
По 100 кандидатов в день (без выходнох)
400 000 / (365*100) = примерно 11 лет
← →
Flagman © (2004-09-01 14:14) [28]> Vit@ly
А может планируется 500 филиалов по тестированию...
← →
Роман Снегирев (2004-09-01 14:15) [29]Sergey13 ©
Зачем?
ну если не обязательно знать на какой вопрос собственно человек отвеыает, то может и незачем
← →
Sergey13 © (2004-09-01 14:19) [30]2[29] Роман Снегирев (01.09.04 14:15)
Они связаны. См [8].
← →
Sergey13 © (2004-09-01 14:28) [31]2[22] Drakosha (01.09.04 13:07)
И еще. Наверное надо сделать еще табличку "экзамен" с Id_человека и датой. Ибо могут быть и пересдачи наверное. Соответственно результаты должны ссылаться на эту табличку.
← →
stud © (2004-09-01 14:32) [32]
> И еще. Наверное надо сделать еще табличку "экзамен" с Id_человека
> и датой.
а зачем отдельную таблицу? добавить поле
← →
Sergey13 © (2004-09-01 14:34) [33]2[32] stud © (01.09.04 14:32)
>а зачем отдельную таблицу? добавить поле
Куда?
← →
stud © (2004-09-01 14:36) [34]к таблице ответов.
или в таблице ответов поле связи с таблицей "экзамен"
← →
Sergey13 © (2004-09-01 14:40) [35]2[34] stud © (01.09.04 14:36)
>или в таблице ответов поле связи с таблицей "экзамен"
Я и писал об этом. Зачем 60 раз дату писать на каждый ответ? Можно 1 раз на "экзамен". Нормализация, однако. 8-)
← →
stud © (2004-09-01 14:52) [36]
> Зачем 60 раз дату писать на каждый ответ? Можно 1 раз на
> "экзамен"
а зачем 60 раз одинаковое значение поля связи?))) и таблицы еще одной не надо)) логика однако.)) нормализация хорошо но не всегда))
← →
Sergey13 © (2004-09-01 14:54) [37]2[36] stud © (01.09.04 14:52)
>а зачем 60 раз одинаковое значение поля связи?)))
Не понял. Ты про что?
>логика однако.
C этим еще разобраться надо.8-)
← →
Petr V. Abramov © (2004-09-01 18:23) [38]> stud © (01.09.04 14:52) [36]
> а зачем 60 раз одинаковое значение поля связи?)))
На случай, если с датой понятием экзамена кроме даты окажутся связаны какие-нить атрибуты. Я задачи ни задачи, ни человека не знаю, но готов спорить на пиво, что очень скоро так и окажется :). И сам отвечающий, возможно, окажется в числе этих атрибутов.
Насчет "400 000*40" и "RAID" - баловство это все. Такого плана таблички сам бог велел создавать create table .... organization index и хоть на 386-й с помоишным :) винтом будет работать (если пользователей мало, а памяти - много :)
← →
Vit@ly © (2004-09-01 19:30) [39]Довольно сложно понять о чем здесь идет разговор?
У меня скажем похожая тестовая система.
Постоянно храню только сами результаты тестирования. Примерно в такой таблице:
- предприятие (из таблицы прдприятий)
- ФИО (из таблицы ФИО, где и остальная информация: должность,г.рожд. и т.п.)
- дата аттестации
- результат аттестации
Непосредственные вопросы каждого аттестуемого храню во временных файлах (да и то не все, а лишь те, на которые аттестуемый ответил неверно). Информацию сохраняю на случай конфликтной ситуации, если аттестуемый не соласен с оценкой (в этом случае я даю ему распечатку (протокол) эго ответов). Храню обычно не более 3-х дней. Позже эта информация теряет свою актуальность.
← →
Drakosha (2004-09-02 18:22) [40]тобишь у тебя в "результат аттестации" 1 или 0 ?
Страницы: 1 2 вся ветка
Форум: "Базы";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.049 c