Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.03;
Скачать: CL | DM;

Вниз

Помогите разработать структуру БД   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.028 c
3-1094477120
neznaika
2004-09-06 17:25
2004.10.03
Через ADOConnection к Interbase


14-1095213758
Думкин
2004-09-15 06:02
2004.10.03
С днем рождения! 15 августа


11-1081110390
Sewix
2004-04-05 00:26
2004.10.03
как сдеалть активным EditBox


3-1094586493
sherbacov
2004-09-07 23:48
2004.10.03
протоколирование БД


11-1081084673
hammer
2004-04-04 17:17
2004.10.03
scrollbox