|
|
|
| таблица: Ключь; № группы; дата набора.
Как создать запрос, что бы в каждый момент времени знать какие группы на каком курсе учатся?
Пробовал
курс:Year([текущая дата])-Year([дата набора])
| получил курс 0
Пробовал курс:
Year([текущая дата])-Year([дата набора])+1
| получил курс 6
Ещё я не могу вспомнить арифметику. Как составить запрос на извлечение записей с датой, отстоящей от текущей в прошлое не менее чем на Х месяцев? (прошлый год, позапрошлый год и так далее) | |
|
| |
|
|
|
| Для расчёта интервалов между датами есть функция DateDiff. | |
|
| |
|
|
|
| исчо функция
DateSerial(year, month, day) и TimeSerial(hour, minute, second) | |
|
| |
|
|
|
| Добрый день, не побоюсь этого слова, коллега ! Похоже, что мы работаем над схожими проблемами, я тоже пытаюсь создать базу студентов. До работы с датами еще не дошел, но, предчувствую, засады там те еще. Полагаю, надо как-то поддерживать связь, делиться идеями ? Взаимовыгодно сотрудничать. Если Вам интересно, я могу прикрепить свой файл, но, конечно, все еще далеко до совершенства. С Новым Годом, творческих успехов ! | |
|
| |
|
34 Кб. |
|
|
Мои соображения:
Сама по себе задача описания учебного процесса учебного заведения далеко не "детская", и
требует не только отменного знания предметной области, но и хорошей подготовки в
проектировании БД.
Поскольку ни тем, ни другим похвастаться не могу, попытался "выдавить" из себя что-нибудь
минимально необходимое схематичное, с многочисленными упрощениями.
Разбил задачу упрощенно на три:
1. Описание "административной" структуры УЗ
2. Описание структуры групп на учебный год
3. Описание перемещений студентов по группам
Пока даже без учета административного и преподавательского состава УЗ и прочего, а мосх уже кипит.
Получилось как-то так: | |
|
| |
|
|
|
| Спасибо. Мне (слава богу) не ставилась задача описания учебного процесса. Нужно только расчитать номер курса. Закавыка в том, что переход с курса на курс осуществляется в августе, а календарный год начинается в январе.
Может стоит сделать условие на значение текущей даты: с августа по декабрь курс=текущая дата - дата набора, а в остальные дни курс=текущая дата - дата набора+1? | |
|
| |
|
|
|
|
...переход с курса на курс осуществляется в августе...
|
А вот и нет.
Перевод студента с курса на курс осуществляется приказом по учебному заведению.
При этом студент может (и не обязательно в августе):
1. быть отчислен
2. взять академический отпуск
3. перейти на другой факультет в группу ниже
4. быть зачислен из другого учебного заведения
5. перейти на другую форму обучения (дневная/вечерняя/заочная)
6. ... и прочая и прочая ...
Такие вот они, студенты.
Это я к тому, что курс не должен быть расчетной величиной. | |
|
| |
|
|
|
| В моей задаче речь не касается студентов. Интерес представляют только группы целиком. Предполагается, что роспуска и доборов групп не будет - так сказал заказчик. Каждый год создаётся разное количество групп, и группы, которые в ноябре 2001 были на 1 курсе, только в августе 2002 перейдут на 2 курс.
Если номер курса не делать расчётной величиной, то как создавать запросы на прошедшее время? | |
|
| |
|
|
|
| Я предлагаю на каждый учебный год формировать группы (см. скрин), где и указывать курс группы.
В вашем случае, к примеру, если вы будете "поднимать" историю с расчетным номером курса по дате, то лет через 10 у Вас может оказаться, что студенты оказывается уже на 10 курсе, при 6 летнем (к примеру) сроке обучения. | |
|
| |
|
|
|
|
Я предлагаю на каждый учебный год формировать группы (см. скрин), где и указывать курс группы
|
+1 но скрин оторвался | |
|
| |
|
|
|
|
| То есть каждый год стирать и заново записывать таблицу группы. Тогда как, опять же, смотреть прошлое?
Можно в запросе поставить ограничение на значение номера курса не более 6. | |
|
| |
|
|
|
| понятие "группа" существует в двух ипостасях
группа как организационная единица (может содержать NULL студентов)
или, например, как группа персон (студентов) посещающих занятия.
нужно рассматривать эти ипостаси как разные сущности,
точнее вторая из них (группа персон) это даже не сущность а представление. | |
|
| |
|
|
|
| В данном случае группа - организационная единица | |
|
| |
|
|
|
| tblGroups - научные группы
GroupID - код группы (счетчик)
GroupCode - условный код группы
GroupName - название группы
GroupDescription - описание группы
tblStudents - студенты ВУЗа
StudentID - идентификатор студента
PersonID - идентификатор персоны
EnrolmentDate - дата поступления в ВУЗ
DischargeDate - дата отчисления из ВУЗа
tblAssignments набор студентов в группы
AssignmentID - код назначения в группу
StudentID - код студента
GroupID - код группы
AssignmentDate - дата зачисления
DismissalDate - дата исключения
это не самый развернутый вариант - просто на скорую руку | |
|
| |
|
|
|
| номер курса это не число а стринг, вообще то | |
|
| |
|
|
|
| ??? Как так? В вузе раз в году набирается один первый курс, а остальные переводятся на более старший. Номер курса, на котором сформированна научная группа определяется текущей датой и датой (точнее годом) набора. | |
|
| |
|
|
|
|
а вот так :)))
в следующий раз если захочешь проверить число или стринг - попробуй просто сложить значения.
если к первому курсу прибавить второй курс - получится третий? нет? значит стринг. | |
|
| |
|
|
|
|
...каждый год стирать и заново записывать...
|
А просто добавить группы нельзя?
Что бы не "стирать" историю. | |
|
| |
|
|
|
|
Предполагается, что роспуска и доборов групп не будет - так сказал заказчик
|
в смысле - так написано в методичке или препод на консультации посоветовал? | |
|
| |
|
|
|
| Есть курс студентов. В год поступления среди них выбирают умных и образуют несколько научных групп. Каждая группа прикрепляется к какому либо начальнику кафедры, который ставит коньяк начальникам исследовательских лабораторий, что бы этих оболтусов записали соисполнителями НИР. Если в процессе обучения выявляются ещё один умный студент, его зачисляют в уже существующую группу того курса, на котором он учиться. | |
|
| |
|
|
|
| Вы хотели сказать:
"...на котором он утиться."
|
"..будет в дальнейшем." А то мысль, кажется не законченной.
Хотя не понятно, что вообще у Вас там со студентами просходит. То они студенты, то они научные сотрудники, то, если самые-самые умные, опять студенты, да ещё и на второй год оставленные... | |
|
| |
|
|
|
| Научные группы - формирования, не имеющие никакого отношения к учебному процессу. Научная группа образуется при поступлении студентов на первый курс (наборе курса) и распускается при выпуске. | |
|
| |
|
|
|
| Может описать табличку история группы?:
КодИстории
КодГруппы
ДатаНачалаИнтервала
ДатаОкончанияИнтервала
Курс
И раз в год ее актуализировать (добавлять интервалы).
(Или сразу заполнить на весь период обучения?)
Тогда на любую дату можно определить:
валидность группы
курс группы | |
|
| |
|
|
|
|
Может описать табличку история группы?:
|
а какая может быть история группы?
там только дата образования и дата расформирования - все.
после расформирования формируется новая группа
в принципе время существования группы не ограничено посещеним группы студентами. Студенты сами по себе группа сама по себе - группе-то что хоть сто лет существуй
остальное это история записи студетов в группы | |
|
| |
|
|
|
| Несомненно так.
Но, коль, в данном случае, на студентов "на@рать", их в расчет не берут, то мне показался этот
вариант достаточным для определения курса групп(ы) на даты. | |
|
| |
|
|
|
|
Но, коль, в данном случае, на студентов
|
тогда нужно каждый год новый ВУЗ создавать, а старый стирать | |
|
| |
|
|
|
| Увы, и такое в современной России не редкость. | |
|
| |
|
17 Кб. |
|
| Вмешаюсь ни с децил.
Допустим есть таблица учета студентов. (2-3 подтаблицы не важно) Попробуй сделать так: На экране только текущие действующие данные. При их изменении ( в строке разумеется) старые данные автоматически вносятся в таблицу "Архив" вот и все. Вернее там 2 запроса будет. Один - отвечает за то, что уже есть в архиве по контрольным полям, а другой на добавление - в котором табла и запрос контролирующий. Пример
Иванов Иван Иванович паспорт 11 11 111111 изменил паспорт. Стираем 11 11 111111 и ставим новый 22 22 222222 по нажатии Enter или по закрытии формы или на кнопку как угодно срабатывает запрос и добавляет этого иванова с новым паспортом. Если он снова изменится - добавит новый. Добавляет только один раз соответственно. | |
|
| |
|
37 Кб. |
|
| Точно, задача не из легких...Самая главная проблема, как мне представляется - это старые записи, т.е. отчисленные студенты. Здесь надо массово отчислять группы, вернее, курсы, по окончанию их обучения. Такая операция возможна запросом на изменение и выполнятся по определенному условию и, конечно же, массово, и , конечно же, страшно...Вот моя схема, где Payment - сведения об оплате(контрактники и гос.заказ - главный вопрос в вузе) Privileg - льготы (надо постоянно контролировать контингент таких студентов) ChangName сюда я пишу девичьи фамилии (универ небольшой, а замуж девки скачут, заявления на изменения фамилии каждую неделю несут пачками ))) Vacation - академотпуск (этих надо помнить обязательно, чтоб не потерялись) SpecBac - специальности бакалавра и лицензия SpecMag - специальности магистра и т.д и т.п...Коллеги, призываю к сотрудничеству !!! Одиночке - энтузиасту, у которого появилось немного свободного времени это не по силам ! Всех с Новым Годом ! | |
|
| |
|
|
|
| Блин. Все на английском и не все поля таблиц видны.
А собственно в чем проблема? Упрости все раза в два и дело в шляпе. Тут подход конкретный нужен. Длительное сотрудничество с пацанами необходимо. А если все это в сеть надо, то уууу! Проще баблосы отслюнявить, заказ накропалить, техзадачу сваганить. Амбец полный. | |
|
| |
|
9 Кб. |
|
| Вот что получилось. Нет ли где ошибки? | |
|
| |
|
|
|
| Grigoriu, зачем Вам справочник мужских и женских имён? И зачем при этом нужен ещё и справочник полов? По-моему, полов всего два у людей. Или Вы на будущее планируете, что появятся официально ещё несколько?.. | |
|
| |
|
|
|
| Че-то я в Григориях запутался совсем. Кто что спрашивает? Что происходит. Кто чего хочет. Давайте по порядку. | |
|
| |
|
|
|
| Поглядел схему внимательнее. На беглый взбляд напрашивается вывод.
По схеме:
Таблица sex точно лишняя. Это встроенная в таблу(форму) инфа для поля со списком
Имя - следует вводить 1 раз и уже от него плясать.
Группы - слабо представляю что это и для чего. Но скорей всего следует сделать индексированным в справочнике
Список факультетов - почему в нем указан город. Типа филиалы что ли?
Может в подчиненную форму? Факультет один. Городов много.
Stud_Group - это что?Дата начала и конца понятно. А что там дальше?
Таблицы Payment, Vacation для чего? Почти одинаковы.
Проще ТЗ выложить хотя бы в элементарном виде. Тут умных людей масса. Накидают черновик и дальше дело техники. | |
|
| |
|
|
|
| Отправьте меня лучше к похожим (связанными с учетом студентов) проектам куда-нибудь, если знаете | |
|
| |
|