Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.035 c
11-1081013613
mehos
2004-04-03 21:33
2004.10.03
Ширина выводимой меню, при OwnerDraw=true


1-1095347646
Кирилл
2004-09-16 19:14
2004.10.03
Outlook Express


1-1095665112
Ярыч
2004-09-20 11:25
2004.10.03
создание объектов класса TPanel в runtime


11-1081013421
Delphi5.01
2004-04-03 21:30
2004.10.03
TKOLPaintBox


1-1095237932
Misha123
2004-09-15 12:45
2004.10.03
ООП - корректный тип для экземпляра объекта





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский