Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 28.01.2011, 16:01
Fides Fides вне форума
Прохожий
 
Регистрация: 28.01.2011
Сообщения: 8
Репутация: 10
По умолчанию БД ВУЗ

Создается БД ВУЗ, ведется учет студентов, предметов, преподавателей и т д. Также в БД должны хранится результаты сдачи студентами зачетов, и екзаменов. Некак не получается организовать даную возможность, скажем так оптимально организовать. Как субд используется Firebird, но в моем случае не важно Какая субд, мне бы любой пример как можно хранить результаты студентов. С етими результатами в будущем предпологается работать дальше, тоисть определять успешные и не успешные групы, сравнивать разные групы и т д. Даную БД создаю для Магистерской. Хоть практического применения она не будет иметь, но проверять будут тщательно. Количество Студентов в среднем 15 тысяч. Буду рад любым советами. Если не понятно изложил вопрос пишите, попытаюсь изложить по другому. Прошу помощи сдесь так как сам пришол в тупик и не вижу выхода.
Ответить с цитированием
  #2  
Старый 28.01.2011, 16:24
Аватар для movnet
movnet movnet вне форума
Начинающий
 
Регистрация: 24.07.2008
Сообщения: 127
Версия Delphi: Delphi 7
Репутация: 23
По умолчанию

Ты начинай работать а народ если будет нужно поможет.
Ответить с цитированием
  #3  
Старый 28.01.2011, 16:33
Fides Fides вне форума
Прохожий
 
Регистрация: 28.01.2011
Сообщения: 8
Репутация: 10
По умолчанию

Да я работаю)
В БД созданы таблицы Студенты, Преподаватели, Групы, Предметы и так далее.
Вот когда прихожу к созданию таблиц для учета успеваемости все стопор.
Пытаясь создавать ее по образу:

ID|ID_Stud|ID_Object|ID_Teacher| ...

Получается что все время у меня повторяеются студенты , и предметы , должен быть какой то выход но не вижу его.
Пытался по другому создавая для каждой групы свою таблицу, но как на меня тоже не вариант. Нужна хоть какая то идея, а то стою на месте.
Ответить с цитированием
  #4  
Старый 28.01.2011, 17:23
Black Raider Black Raider вне форума
Местный
 
Регистрация: 31.05.2010
Адрес: Москва
Сообщения: 466
Версия Delphi: 7
Репутация: 40
По умолчанию

Не пойму в чем тупик то?
Например
[Table_Group]
ID Group
[Table_Student]
ID FIO IDGroup

[Table_Predmet]
ID Predmet

тогда оценки по предметам будет таблица
ID IDFIO IDPredmet Ocenka

Создавать для каждой группы отдельную таблицу не стоит.
__________________
Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение"
Ответить с цитированием
  #5  
Старый 28.01.2011, 17:43
Fides Fides вне форума
Прохожий
 
Регистрация: 28.01.2011
Сообщения: 8
Репутация: 10
По умолчанию

Цитата:
Сообщение от Black Raider
Не пойму в чем тупик то?
Например
[Table_Group]
ID Group
[Table_Student]
ID FIO IDGroup

[Table_Predmet]
ID Predmet

тогда оценки по предметам будет таблица
ID IDFIO IDPredmet Ocenka

Создавать для каждой группы отдельную таблицу не стоит.

Суть в следующем:
Каждый студент в каждом семестре сдает 10 предметов в среднем. Написав как ты советуеш я и сам пытался, получается что нам прийдется для каждого студента писать:
ID_STUD ID_PREDMET
stud1 Predmet1
stud1 Predmet2
.
.
stud1 Predmet10
потом также для второго студента и т д . Поскольку стедентов 15 тыс. То на 1 семестер ето будет 150 тысяч записей. По моему слишком много, и я считаю что должен быть какойто обход для етого повторения даных типа:
ID_STUD ID_PREDMET
Чтото с помощью дополнительного расбивания на таблицы или тому подобное. Вот в етом моя проблема собственно. Мжет быть ето считается нормальным , ктото из знающих подскажет но насколько помню одно из правил Нормализации БД какраз говорит что такие вот случаи надо выключать с помощю расбивки на дополнительные таблицы.
Ответить с цитированием
  #6  
Старый 28.01.2011, 17:49
Black Raider Black Raider вне форума
Местный
 
Регистрация: 31.05.2010
Адрес: Москва
Сообщения: 466
Версия Delphi: 7
Репутация: 40
По умолчанию

Как раз таки нормализация данных говорит о том что б не было повторяющихся данных!!!(это так, в общем)
Разбитие на таблицы и бессмысленно и трудоемко в плане выполнения запросов.
150 К записей это не много.
потом, это таблица связей.
Где вы увидали повторяющиеся записи?
по большому счету в этой таблице еще поле Semestr
и так представим
студенты 1 Иванов
2 Петров
3 Сидоров

Предметы
1 математика
2 азбука
3 Письмо

Семестры
1 01.09.2010-01.01.2011
2 01.01.2011-01.06.2011

в итоге будем иметь
таблицу вида:
Студент Предмет Семестр Оценка
1 1 1 4
1 2 1 4
1 3 1 2
2 1 1 2
2 2 1 3
2 3 1 4
3 1 1 5
3 2 1 4
3 3 1 5

Покажите мне хоть одну повторяющуюся запись? не поле в таблице а именно запись (если понятней строку!)

а следуя вашей логике, надо создавать на каждого студента по таблице.
__________________
Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение"

Последний раз редактировалось Black Raider, 28.01.2011 в 17:55.
Ответить с цитированием
  #7  
Старый 20.04.2011, 07:18
Аватар для th_bav
th_bav th_bav вне форума
Новичок
 
Регистрация: 02.12.2010
Сообщения: 74
Репутация: 10
По умолчанию

Цитата:
Сообщение от Fides
Как субд используется Firebird, но в моем случае не важно Какая субд, мне бы любой пример как можно хранить результаты студентов.
Я бы на Вашем месте MS Access использовал, он проще чем серверная база, он есть почти на каждом ПК, да и помощи по нему будет больше. Честно говоря не вижу необходимости ставить сервер, тем более для одной таблицы, да и пользователей у Вас будет не много, а если хорошо спроектировать клиентскую часть, то одного человека хватит чтобы быстро извлечь данные.... тем более раз у Вас одна таблица, то и записей будет 15 тысяч
P.S.Судя по информации из интернета у Access максимальный размер БД 2ГБ, думаю Вам с лихвой хватит...
__________________
Глаза боятся - Руки делают...
А еще я не внимательный...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 09:57.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter