|
|
|
Прошу совета бывалых проектантов низовой структуры БД.
|
|||
|---|---|---|---|
|
#18+
БД универа в которой учитываются данные по сдаче экзаменов. Спроектировал чудушку на глиняных ногах… )))) (((( Вообщем многое видно из схемы Некоторые положения: Один препод может вести несколько дисциплин (предметов) поэтому таблицы преподов и предметов связаны через промежуточную таблицу, что соответствует отношению многие ко многим. Далее каждый препод может вести предметы в нескольких группах , сделано тоже самое , таблица преподов вяжется через промежуточную таблицу с таблицей групп, тоже отношение многие ко многим. Студент , с ним вроде просто , он привязывается к своей группе, а группа вяжется к курсу , который в свою очередь привязывается к факультету. Экзамен назначается группе , дата экзамена и привязывается к преподу и предмету (таблица «Экзамен » связана с таблицей «Преподы предметы») (ВОТ ТУТ ДУМАЛ СО СТРАШНОЙ СИЛОЙ ,ТАК ЛИ ПОСТУПИТЬ) И последняя таблица результатов экзамена Там Айдишник Экзамена , Айдишник Студента и собственно оценка студента . Просьба покритиковать проект , наставить на путь истинный если где по Вашему мнению тупанул. Дело все в том, что я не могу в одном запросе вывести результаты экзаменов чтобы там было ЭТО АйдиСтудента ФИО Студента Предмет по которому сдавал экзамен (Название предмета) Препод который принимал экзамен (ФИО) Оценка по экзамену Название Группы студента Как бы я не извращался , у меня не получилось в одном запросе получить эти данные , начал думать что косяк именно при проектировании БД, прикладываю в архиве файл БД акес 2000 формат, (зарарил , всего 25 КБ ), отвечу оперативно на любые вопросы. Надо сделать парни, надо . Плохо спроектированная база это тоже самое что машина без колес, какой бы движок у нее не был , без колес она не поедет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2007, 20:09 |
|
||
|
Прошу совета бывалых проектантов низовой структуры БД.
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2007, 20:10 |
|
||
|
Прошу совета бывалых проектантов низовой структуры БД.
|
|||
|---|---|---|---|
|
#18+
Экзамены join ПреподыПредметы join Преподаватели join РезультатыЭкзаменов join Студенты join Группы Нехорошо то, что экзамен связан с преподавателем и предмет через другую связь - ПреподыПредметы. ПреподыПредметы это связь, которая со временем может прекратить своё существование, и ты потеряешь информацию о предмете и преподавателе, который когда то принимал экзамен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2007, 20:31 |
|
||
|
Прошу совета бывалых проектантов низовой структуры БД.
|
|||
|---|---|---|---|
|
#18+
я бы добавил табличку "Семестры", и в ПреподыПредметы и Экзамен, соответственно, добавил ID семестра (преподаватель ведет данный предмет в данном семестре, экзамен принимает в данном семестре)- тогда проблема с удалением связи исчезнет. Связь "преподаватель-группа" - насколько я понимаю, лишняя, она воспроизводится из Экзамена. (Если не может быть ситуации, когда читал курс один преподаватель, а экзамен принимает другой. Если может - в структуре надо вообще многое менять, добавлять в ПреподПредмет поле "Роль", etc.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2007, 20:49 |
|
||
|
Прошу совета бывалых проектантов низовой структуры БД.
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинСвязь "преподаватель-группа" - насколько я понимаю, лишняя, она воспроизводится из Экзамена. Тоже об этом подумал, но, пока ни один из студентов не сдал экзамен, в БД не будет информации о том в какой группе этот экзамен запланирован, какая группа должна сдать экзамен. Фактически его могут сдавать студенты из любых групп. Если такое случится, прямая связь экзамена с группой позволит однозначно определить группу студентов которая должна сдать этот экзамен и выявить посторонних студентов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2007, 21:20 |
|
||
|
Прошу совета бывалых проектантов низовой структуры БД.
|
|||
|---|---|---|---|
|
#18+
Студент может одновременно учиться на разных факультетах? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2007, 21:35 |
|
||
|
Прошу совета бывалых проектантов низовой структуры БД.
|
|||
|---|---|---|---|
|
#18+
mcureenab Тоже об этом подумал, но, пока ни один из студентов не сдал экзамен, в БД не будет информации о том в какой группе этот экзамен запланирован, какая группа должна сдать экзамен. Если запись об экамене не существует - этой информации и так не будет, связь "преподаватели-группы" тут никак не поможет. Если существует (скажем, с датой = NULL) - не понимаю проблемы. mcureenab Если такое случится, прямая связь экзамена с группой позволит однозначно определить группу студентов которая должна сдать этот экзамен и выявить посторонних студентов. Я не предлагаю убрать ссылку на группу из таблицы "экзамен", я предлагаю убрать таблицу "преподаватели-группы". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2007, 22:03 |
|
||
|
Прошу совета бывалых проектантов низовой структуры БД.
|
|||
|---|---|---|---|
|
#18+
Ой ёёё ой , включаю думатрон , щаз переварю что написали и отвечу. нет студент может учиться только на 1 фак-те. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2007, 23:13 |
|
||
|
Прошу совета бывалых проектантов низовой структуры БД.
|
|||
|---|---|---|---|
|
#18+
2 mcureenab //Нехорошо то, что экзамен связан с преподавателем и предмет через другую связь - ПреподыПредметы. Ну а как связать более корректно? Ведь группа сдает экзамен преподу, а в таблице ПреподыПредметы однозначно определенно что ведет (предмет) препод. Если есть идеи как по другому повязать – я весь во внимании ! 2 Кот_Матроскин Если препод читал курс то он и принимает,тут так. В остальном изменил структуру по твоему совету. Спасибо за подзатыльники и тычинки , респект. Можно подробней про то , что мол при удалении некоторых данных потеряются результаты экзаменов. Например если шлепнуть препода, то по цепочке пойдет волна и смоет и его экзамены и результаты , но как верно ты заметил если ввести статус его (работает / уволился, курит) то проблема снимается. Убил таблицы ПреподателиГруппы , верно ты сказал , это можно оперделить из экзаменов. Добавил табличку семестр и ссылки на нее в ПреподыПрдеметы и Экзамен. Все также не могу получить в запросе ЭТО (((((((((( Добавляю пару таблицы, Джоин вся фигня и получаю в поле ID_PrepPredmet одни и те же значения , все одинаковые , не могу вьехать что не так. АйдиСтудента ФИО Студента Предмет по которому сдавал экзамен (Название предмета) Препод который принимал экзамен (ФИО) Оценка по экзамену Название Группы студента Ну плюс в этом же запросе семестр сдачи экзамена. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2007, 01:18 |
|
||
|
Прошу совета бывалых проектантов низовой структуры БД.
|
|||
|---|---|---|---|
|
#18+
Всё , пошла резина , запросец сделал!!! Дарт всем говорит спасибо , особое спасибо Мотроскину, завтра загляну может последнюю модель БД сожгут напалмом )))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2007, 02:13 |
|
||
|
Прошу совета бывалых проектантов низовой структуры БД.
|
|||
|---|---|---|---|
|
#18+
# Darth Vader #Такое впечатление, что ты стебаешься. Это не схема, это ужас в ночи. Навскидку в хаотическом порядке: 1. Зачем нужна сущность "Курс" ? 2. Почему сущность "Студенты" зависит от сущности "Группы" ? 3. Зачем нужно поле "ID" в сущности "Результаты экзаменов" ? 4. Почему от сущности "Семестры" есть связи к сущности "Экзамены" и "ПреподыПредметы" одновременно ? 5. Аналогично, почему от сущности "Группы" есть связи к сущности "Экзамены" и "Студенты" одновременно ? 6. Уже что-то подобное говорили. Если преподаватель умрет, как он будет принимать экзамен ? 7. ...more&more В общем, все не так. Попробуй выделить, что и от чего действительно зависит, а что является независимым. Где есть история и где нет. И "не следует приумножать сущностей сверх необходимого". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2007, 02:33 |
|
||
|
Прошу совета бывалых проектантов низовой структуры БД.
|
|||
|---|---|---|---|
|
#18+
ChAТакое впечатление, что ты стебаешься. Это не схема, это ужас в ночи. Навскидку в хаотическом порядке: Вот нравятся мне прямые люди. Может я много где ошибся, но ты ошибся в одном- я не стебаюсь , бл буду . ChA 1. Зачем нужна сущность "Курс" ? Ну дык известно для чего, чтобы пнуть студента на курс, зафиксировать его там. Предлагаешь исключить вообще эту сущность? Ведь надо знать на каком курсе штундент учиться. ChA 2. Почему сущность "Студенты" зависит от сущности "Группы" ? А что тут такого? В группе может быть куча студентов. Студент может быть лишь в одной группе, по моему тут все в ажуре. ChA 3. Зачем нужно поле "ID" в сущности "Результаты экзаменов" ? Можно конечно было его убить, но привык что в каждой таблице есть поле первичного ключа. ChA 4. Почему от сущности "Семестры" есть связи к сущности "Экзамены" и "ПреподыПредметы" одновременно ? Потому что экзамен будет сдаваться в оперерделенном семестре, а препод ведет предмет тоже по семестрам, можно поглядеть будет когда и что велось. ChA 5. Аналогично, почему от сущности "Группы" есть связи к сущности "Экзамены" и "Студенты" одновременно ? Экзамен сдает группа, это как факт который свершится, в таблице Экзамены те экзамены которые впереди , а в таблице РезультатыЭкзаменов лишь результаты, предлагаешь это все вместе слить? ChA 6. Уже что-то подобное говорили. Если преподаватель умрет, как он будет принимать экзамен ? В таблице экзаменов либо убивается запись либо правится на другого препода. ChA В общем, все не так. Попробуй выделить, что и от чего действительно зависит, а что является независимым. Где есть история и где нет. И "не следует приумножать сущностей сверх необходимого". Вот поэтому я пихнул сюда свои старания, чтобы такие монстры как ТЫ (поверь это не сарказм) помогли мне так сказать в боевой обстановке. Покажи мастер класс, наваяй свою версию или поправь мой вариант, если ты не считаешь конечно , что впустую потратишь время, для меня это будет хорошей школой и бл буду , что реально буду очень благодарен ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2007, 03:05 |
|
||
|
Прошу совета бывалых проектантов низовой структуры БД.
|
|||
|---|---|---|---|
|
#18+
# Darth Vader # ChA1. Зачем нужна сущность "Курс" ?Ну дык известно для чего, чтобы пнуть студента на курс, зафиксировать его там. Предлагаешь исключить вообще эту сущность? Ведь надо знать на каком курсе штундент учиться.Это, например, легко узнать через сданные им экзамены, которые, в свою очередь, сдаются в определенном семестре определенного курса. Хотя это надумано, просто как иллюстрация. Да, и кстати, почему курс зависит от факультета ? # Darth Vader # ChA2. Почему сущность "Студенты" зависит от сущности "Группы" ?А что тут такого? В группе может быть куча студентов. Студент может быть лишь в одной группе, по моему тут все в ажуре.Это, конечно, да. Но у тебя группа студента зависит от курса. Будешь менять его группу каждый курс ? Но тогда зачем в твоем случае выделять сущность "Курс" вообще ? Это всего лишь число - номер, нет ? * Кстати, у нас наименование группы зависело от семестра и кафедры, хотя фактически наименование группы соответствовало код_факультета+номер_кафедре+номер_ семестра, но это совершенно не значит, что в таком виде оно и должно хранится в БД, так как оно легко вычисляется. # Darth Vader # ChA3. Зачем нужно поле "ID" в сущности "Результаты экзаменов" ?Можно конечно было его убить, но привык что в каждой таблице есть поле первичного ключа.Первичный ключ - это святое, но в твоей схеме такую роль может играть пара (ID_Ex, ID_Stud). Надобность в другом ключе отсутствует. # Darth Vader # ChA4. Почему от сущности "Семестры" есть связи к сущности "Экзамены" и "ПреподыПредметы" одновременно ? Потому что экзамен будет сдаваться в оперерделенном семестре, а препод ведет предмет тоже по семестрам, можно поглядеть будет когда и что велось.По твоей схеме есть возможность появления артефактов. Т.е., экзамен сдается, например, в 5 семестре, а преподаватель давал этот предмет, ну например, в 8 семестре. Надо стремиться к тому, чтобы один факт был в одном месте. # Darth Vader # ChA5. Аналогично, почему от сущности "Группы" есть связи к сущности "Экзамены" и "Студенты" одновременно ?Экзамен сдает группа, это как факт который свершится, в таблице Экзамены те экзамены которые впереди , а в таблице РезультатыЭкзаменов лишь результаты, предлагаешь это все вместе слить?Та же вероятность артефакта, что и в предыдущем случае. # Darth Vader # ChA6. Уже что-то подобное говорили. Если преподаватель умрет, как он будет принимать экзамен ?В таблице экзаменов либо убивается запись либо правится на другого препода.Но вел-то курс другой преподаватель. * У нас, кстати, практиковалось, что принимают экзамен не те преподаватели, что давали предмет. # Darth Vader #Покажи мастер класс, наваяй свою версию или поправь мой вариант, если ты не считаешь конечно , что впустую потратишь время, для меня это будет хорошей школой и бл буду , что реально буду очень благодарен !Ни в коем случае, гораздо важнее тебе самому понять, почему именно так, а не иначе. Так что извини. Но, если что будет не так, тебе здесь скажут, не сумлевайся :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2007, 04:09 |
|
||
|
Прошу совета бывалых проектантов низовой структуры БД.
|
|||
|---|---|---|---|
|
#18+
ChA Да, и кстати, почему курс зависит от факультета ? Военное училище потому что. Группа = взвод. Курс = рота. Факультет = батальон. ChA Первичный ключ - это святое, но в твоей схеме такую роль может играть пара (ID_Ex, ID_Stud). Надобность в другом ключе отсутствует. В принципе, верно, что придерживаешься привычной схемы. Хотя конечно, толку от этого Id мало. Лучше экзамен напрямую к преподу прицепи. Может быть, что и не один препод будет: а экзаменационная комиссия переменного состава. И Экзамен , мо-моему, напрямую к предмету завязать нужно. Тут уж точно вариаций быть не может. Бывает, что экзамен один за два семестра, и даже больше. В общем, тут надо вычислять на месте. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2007, 04:42 |
|
||
|
Прошу совета бывалых проектантов низовой структуры БД.
|
|||
|---|---|---|---|
|
#18+
ChA 4. Почему от сущности "Семестры" есть связи к сущности "Экзамены" и "ПреподыПредметы" одновременно ? Это я слегка маху дал, дав такой совет :) Не заметил, что в сущности "ПреподыПредметы" ключ суррогатный, как-то автоматом решил, что ключ там составной (ID_predm, ID_prepod). Тогда при добавлении семестра его нужно добавить в ключ, а следовательно, во все таблицы, ссылающиеся на "ПреподыПредметы". Если ключ не составной, а IDшник, то ID семестра в "Экзаменах" и правда, конечно, не нужен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2007, 11:25 |
|
||
|
Прошу совета бывалых проектантов низовой структуры БД.
|
|||
|---|---|---|---|
|
#18+
2 ChA Спасибо за советы, щаз будем ломать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2007, 11:54 |
|
||
|
Прошу совета бывалых проектантов низовой структуры БД.
|
|||
|---|---|---|---|
|
#18+
Имя группы будет вычисляться по ее айдишнику+номеру_семестра_коду кафедры Теперь чтобы перевести группу на другой курс достаточно для нее указать другой айдишник семестра. Всего таких айдишников 10 - первые семестры 5 курсов и соответственно вторые семестры 5 курсов Группа зависит от семестра и кафедры , семест может поменяться , кафедра одна и та же Экзамен проводится у препода по указному предмету (ту думал, так как препод может вести несколько предметов, то можно указать код предмета ) Воопщем морщил репу со страшной силой, ясен фиг есть нестыковки. Но может все таки ближе к «Не тихому ужасу» ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2007, 14:37 |
|
||
|
Прошу совета бывалых проектантов низовой структуры БД.
|
|||
|---|---|---|---|
|
#18+
Ну я бы кафедры и факультеты вообще бы деревом сделал.Кто знает,что придумает ректор через год.Может быть новые орг структуры с другим делением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2007, 14:57 |
|
||
|
Прошу совета бывалых проектантов низовой структуры БД.
|
|||
|---|---|---|---|
|
#18+
# Darth Vader #2 mcureenab //Нехорошо то, что экзамен связан с преподавателем и предмет через другую связь - ПреподыПредметы. Ну а как связать более корректно? Ведь группа сдает экзамен преподу, а в таблице ПреподыПредметы однозначно определенно что ведет (предмет) препод. Если есть идеи как по другому повязать – я весь во внимании ! Ты уже сделал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2007, 15:17 |
|
||
|
Прошу совета бывалых проектантов низовой структуры БД.
|
|||
|---|---|---|---|
|
#18+
Вопрос. Что такое Группа, что такое Студент и почему ID группы является атрибутом Студента? ИМХО, группа это только её учётный номер. Группу и Студента можно слить в одну таблицу Группы, которая устанавливает связь Факультет, Семестр, Оценки, и ссылается на Человека по ФИО, а также сожержит номер группы. Запрос по Факультет, Семестр, Номер группы вернёт нам студентов группы. Таблица экзамен тоже вызывает сомнение, поскольку оценка выставляется определённым преподавателем, определённому студенту в группе, по определённому предмету. Экзамен может служить для планирования мероприятия. Но если требуется учёт состоявшихся экзаменов, то она не нужна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2007, 15:28 |
|
||
|
Прошу совета бывалых проектантов низовой структуры БД.
|
|||
|---|---|---|---|
|
#18+
# Darth Vader #Но может все таки ближе к «Не тихому ужасу» ?Лучшее :) Хотя вопросы еще остаются. Опять же навскидку: 1. По схеме получается, что студенты разных лет, но из одной группы будут считаться находящимися в одной группе. 2. Меняя семестр группе ты меняешь его и тем, кто учился в такой же группе, но, например, год назад. 3. Предметы перестали быть связанными с семестром. Наводка: если правильно помню, то существует такое понятие, как учебный план. На пиво сам наскребешь ;) P.S. На самом деле в Инете можно найти уже готовые схемы такого рода, но лучше самому. Shtockкафедры и факультеты вообще бы деревом сделал.Кто знает,что придумает ректор через год.Может быть новые орг структуры с другим делением.Такая структура высших заведений, если не ошибаюсь, существует не один век. Но если вдруг такое с будуна какому-то ректору и втемяшится, то это не приведет к кардинальной переделке окончательной схемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2007, 15:37 |
|
||
|
Прошу совета бывалых проектантов низовой структуры БД.
|
|||
|---|---|---|---|
|
#18+
Человек по-моему нечестно поступает. В одной из контор при приёме на работу данная задача явлется тестом, причём заочным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2007, 17:34 |
|
||
|
Прошу совета бывалых проектантов низовой структуры БД.
|
|||
|---|---|---|---|
|
#18+
Old NickЧеловек по-моему нечестно поступает. В одной из контор при приёме на работу данная задача явлется тестом, причём заочным.Даже если это так, ему здесь явного ответа пока не дают, сам борется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2007, 17:39 |
|
||
|
Прошу совета бывалых проектантов низовой структуры БД.
|
|||
|---|---|---|---|
|
#18+
Old NickЧеловек по-моему нечестно поступает. В одной из контор при приёме на работу данная задача явлется тестом, причём заочным. Нет уважаемый , это надо не для теста. не надо быть снобом , меня направляли , а не делали за меня. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2007, 21:38 |
|
||
|
Прошу совета бывалых проектантов низовой структуры БД.
|
|||
|---|---|---|---|
|
#18+
Задача вроде очень ограниченная - "учитываются данные по сдаче экзаменов". Не проще отталкиваться от экзаменационной ведомости? Шапка ведомости: t1 (Название предмета, ФИО препода, Название группы) Строки ведомости: t2 (ФИО студента, оценка) Если кроме того требуется первичный учёт преподавателей, предметов и студентов, то придётся завести соответсвующие таблицы. Но по задаче это вроде не требуется. Только не ясно с id студента. Это № студенческого билета? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2007, 21:49 |
|
||
|
Прошу совета бывалых проектантов низовой структуры БД.
|
|||
|---|---|---|---|
|
#18+
Вот , ваял со страшной силой, учел подзатыльники уважаемых джедаев магистров mcureenab и chA . блин надо хоть пойти пожрать ... 2 mcureenab надо слепить БД в которой будут данные по сдаче экзаменов в универе , да с ведением протоколов если это можно так назвать учебы студентов. Я вот например учился, у нас на курсе было четыре группы, названия каждой менялись из года в год , наша сначала была 104 потом 204 потом 304 .... 504 - дедули. я упростил и сделал допущение что номер группы указывается произвольно и номера групп новых студентов и окончивших учебу уже могут сопадать, но айдишники то разные, значит надо ввести статус студента - учится/свалил, типа того что ли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2007, 23:15 |
|
||
|
Прошу совета бывалых проектантов низовой структуры БД.
|
|||
|---|---|---|---|
|
#18+
2 # Darth Vader #. В новой схеме не вижу дату проведения экзамена. Кроме экзаменов, увы, есть ещё и переэкзаменовки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2007, 11:54 |
|
||
|
Прошу совета бывалых проектантов низовой структуры БД.
|
|||
|---|---|---|---|
|
#18+
# Darth Vader #Я вот например учился, у нас на курсе было четыре группы, названия каждой менялись из года в год , наша сначала была 104 потом 204 потом 304 .... 504 - дедули. яЭто значит группы имеют историю по годам (кроме номера может например куратор меняться). И студенты тоже, и связка идет от истории студента к группе. В 2006 году Коля и Оля учились вместе в 104. А в 2007 в разных : Коля все с тем же номером 104 но от 2007 г., а Оля все в той же группе, но теперь она имеет номер 204. Перечень лет можно выделить отдельной таблицей УчебныйГод. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2007, 12:11 |
|
||
|
Прошу совета бывалых проектантов низовой структуры БД.
|
|||
|---|---|---|---|
|
#18+
ModelR # Darth Vader #Я вот например учился, у нас на курсе было четыре группы, названия каждой менялись из года в год , наша сначала была 104 потом 204 потом 304 .... 504 - дедули. яЭто значит группы имеют историю по годам (кроме номера может например куратор меняться). И студенты тоже, и связка идет от истории студента к группе. В 2006 году Коля и Оля учились вместе в 104. А в 2007 в разных : Коля все с тем же номером 104 но от 2007 г., а Оля все в той же группе, но теперь она имеет номер 204. Перечень лет можно выделить отдельной таблицей УчебныйГод. Это говорит о том, что нужно уйти от абстракций и обратить внимание на факты. В данном случае группа, это документ - список группы и дополнительные сведения (которые пока не требовались, поэтому их нет в модели БД). Каждый год составляется новые списки групп, а старые списки отправляются в архив. Без такого документа, группа, всего лишь неформальное объединение. История по годам и вообще какая либо история изменений - существенное усложнение модели. Лучше рассматривать не изменение номера группы из года в год, а ежегодное формирование новой группы. Для удобства идентификации к номеру группы можно ещё добавить год. Что такое студенты, тоже не совсем понятно. Студен, это не объект, а связь человека с учебным заведением. Полагаю, лучше говорить о студенческом билете, зачётной книжке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2007, 13:37 |
|
||
|
Прошу совета бывалых проектантов низовой структуры БД.
|
|||
|---|---|---|---|
|
#18+
mcureenab История по годам и вообще какая либо история изменений - существенное усложнение модели. Лучше рассматривать не изменение номера группы из года в год, а ежегодное формирование новой группы. Для удобства идентификации к номеру группы можно ещё добавить год. Разве невозможна ситуация с переходом студента из группы в группу по так сказать личным мотивам и заявлению? mcureenabЧто такое студенты, тоже не совсем понятно. Студен, это не объект, а связь человека с учебным заведением. Полагаю, лучше говорить о студенческом билете, зачётной книжке. Не согласен, а контрагент в бухгалтерии это получается не лицо а связь одной конторы с другой? и надо говорить об ИНН и номере паспорта? Бред. Не стоит усложнять то что усложнять не стоит. Есть физическое лицо (студент) которое состоит или состояло в договорных отношениях с учебным заведением. А номера студенческих билетов, договоров с институтом и прочее это дополнительная информация. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2007, 14:02 |
|
||
|
Прошу совета бывалых проектантов низовой структуры БД.
|
|||
|---|---|---|---|
|
#18+
mcureenabВ данном случае группа, это документ - список группы и дополнительные сведения (которые пока не требовались, поэтому их нет в модели БД). Каждый год составляется новые списки групп, а старые списки отправляются в архив. Без такого документа, группа, всего лишь неформальное объединение. История по годам и вообще какая либо история изменений - существенное усложнение модели. Лучше рассматривать не изменение номера группы из года в год, а ежегодное формирование новой группы.Так теряется общность группы по годам. Хотя можно восстановить задав идентификатор специальности, потока, правила нумерации. EstetsНе согласен, а контрагент в бухгалтерии это получается не лицо а связь одной конторы с другой?На самом деле так и есть. Если рассматривать больше одной конторы и их взаимосвязи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 10:38 |
|
||
|
Прошу совета бывалых проектантов низовой структуры БД.
|
|||
|---|---|---|---|
|
#18+
EstetsЕсть физическое лицо (студент) которое состоит или состояло в договорных отношениях с учебным заведением. А номера студенческих билетов, договоров с институтом и прочее это дополнительная информация. "Студент", это не физическое лицо а роль. На человеке не написано, что он студент. (Правда, история знает и такие примеры учёта физических лиц). Эта роль формализована документом. Чтобы купить льготный проездной, мне приходилось предъявлять студенческий билет, с записью, что в период с года x по x+1 я учусь на таком то курсе и печатью. Часто, человек не может иметь более одной связи с организацией, что позволяет приравнять два понятия, но в общем случае это не так. С другой стороны человек может иметь несколько удостоверений личности, и использовать их для создания нескольких связей с организацией, даже если это запрещено. В этом случае приходится проверять подлинность документа и принимать в рассмотрение только один вид документов (например только паспорт гражданина РФ), наводить справки в органах, которые ведут первичный учёт этих документов. В данном случае один и тот же человек может числиться студентом разных групп сколько угодно раз, с разными Id. ИМХО, в качестве Id записи в таблице студентов удобно использовать № студенческого билета. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 17:17 |
|
||
|
Прошу совета бывалых проектантов низовой структуры БД.
|
|||
|---|---|---|---|
|
#18+
ModelRТак теряется общность группы по годам. Хотя можно восстановить задав идентификатор специальности, потока, правила нумерации. Да, собственно так и делают. "Общность" группы понятие неформальное, его невозможно ичитывать. А вот специальность, поток, это другое дело. Если изменить точку зрения, можно говорить, что ВУЗ имеет учебный план на 6 лет по подготовке x специалистов по профессии y к году z. К этому плану на каждый семестр привязана группа. По мере обучения студента включают в определённую группу, отправляют в отпуск или исключают из ВУЗа. После отпуска или перехода из другого ВУЗа или курса студент может быть включен в группу из другого учебного плана (возможно, по той же специальности, но с другой датой выпуска). При этом ему придётся ликвидировать разницу в учебных планах, сдать все необходимые для обучения в данной группе зачёты и экзамены. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 17:38 |
|
||
|
Прошу совета бывалых проектантов низовой структуры БД.
|
|||
|---|---|---|---|
|
#18+
Ситуация: 1. Студент весной взял академический отпуск на год. До этого он (экстерном или нет) сдал пару экзаменов. 2. Менее чем через год зимой этот же студент появляется в ВУЗе и продолжает учиться с того же курса, но уже в другой группе . При этом номер студенческой книжки у него не меняется . При этом ему зачитывают 1 экзамен, но не засчитывают 2-й. При этом даже тот экзамен, что засчитали, формально ставит не тот преподаватель, что его принимал год назад, а другой (текущий). Надеюсь, теперь понятно, что идентифицирует студента и что студент на одном и том же курсе может учиться в разных группах? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 17:58 |
|
||
|
Прошу совета бывалых проектантов низовой структуры БД.
|
|||
|---|---|---|---|
|
#18+
Я просто задам вопросы: 1. Представте себе событие: Студент получает оценку. Каким минимальным набором характеристик определяется объект Студент? 2. Если студент уходит в академ, переводится в другую группу, какие характеристики у объекта студент должны менятся? (Предположение: Студент в академе не должен учитываться вообще) 3. Если проводится экзамен, то как и чем характеризовать объект Экзамен и как его пересечь с объектом Студент? 4. Есть объект Группа(Курс+группа). Чем его характеризовать и как пересечь его с объектами Экзамен и Студент. Естественно что для каждого из этих объектов должна быть создана таблица с где поля соответствуют характеристикам объектов. Вообще, проще все это представить в виде пересечения нескольких n-мерных пространств (где n - различно) типа: пространство, плоскость, прямая. положение прямой однозначно определяется как в пространстве так и на плоскости, а положение плоскости однозначно определяется в пространстве через любые две непаралельные прямые принадлежащие этой плоскости. Очевидно что любые действия с прямой или плоскостью (создание, перемещение, удаление) можно однозначно определить через соответствующие уравнения и понятия времени. (Это всего лишь аналогия) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2007, 09:36 |
|
||
|
Прошу совета бывалых проектантов низовой структуры БД.
|
|||
|---|---|---|---|
|
#18+
Cool!Вообще, проще все это представить в виде пересечения нескольких n-мерных пространств ... Проще для OLAP системы. Для OLTP системы такое представление непригодно в виду слабой связи с объектами реального мира - студенческие, зачётки, списки групп, экзаменационные ведомости, штатное расписание и т.п.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2007, 13:27 |
|
||
|
|

start [/forum/topic.php?all=1&fid=32&tid=1544761]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
152ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
93ms |
get tp. blocked users: |
2ms |
| others: | 259ms |
| total: | 555ms |

| 0 / 0 |
