powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Прошу совета бывалых проектантов низовой структуры БД.
36 сообщений из 36, показаны все 2 страниц
Прошу совета бывалых проектантов низовой структуры БД.
    #34276646
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БД универа в которой учитываются данные по сдаче экзаменов. Спроектировал чудушку на глиняных ногах… )))) ((((

Вообщем многое видно из схемы

Некоторые положения:

Один препод может вести несколько дисциплин (предметов) поэтому таблицы преподов и предметов связаны через промежуточную таблицу, что соответствует отношению многие ко многим.

Далее каждый препод может вести предметы в нескольких группах , сделано тоже самое , таблица преподов вяжется через промежуточную таблицу с таблицей групп, тоже отношение многие ко многим.

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

Экзамен назначается группе , дата экзамена и привязывается к преподу и предмету (таблица «Экзамен » связана с таблицей «Преподы предметы») (ВОТ ТУТ ДУМАЛ СО СТРАШНОЙ СИЛОЙ ,ТАК ЛИ ПОСТУПИТЬ)


И последняя таблица результатов экзамена

Там Айдишник Экзамена , Айдишник Студента и собственно оценка студента .

Просьба покритиковать проект , наставить на путь истинный если где по Вашему мнению тупанул.

Дело все в том, что я не могу в одном запросе вывести результаты экзаменов чтобы там было ЭТО

АйдиСтудента
ФИО Студента
Предмет по которому сдавал экзамен (Название предмета)
Препод который принимал экзамен (ФИО)
Оценка по экзамену
Название Группы студента


Как бы я не извращался , у меня не получилось в одном запросе получить эти данные , начал думать что косяк именно при проектировании БД, прикладываю в архиве файл БД акес 2000 формат, (зарарил , всего 25 КБ ), отвечу оперативно на любые вопросы. Надо сделать парни, надо . Плохо спроектированная база это тоже самое что машина без колес, какой бы движок у нее не был , без колес она не поедет.
...
Рейтинг: 0 / 0
Прошу совета бывалых проектантов низовой структуры БД.
    #34276648
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Прошу совета бывалых проектантов низовой структуры БД.
    #34276676
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Экзамены join ПреподыПредметы join Преподаватели join РезультатыЭкзаменов join Студенты join Группы

Нехорошо то, что экзамен связан с преподавателем и предмет через другую связь - ПреподыПредметы.
ПреподыПредметы это связь, которая со временем может прекратить своё существование, и ты потеряешь информацию о предмете и преподавателе, который когда то принимал экзамен.
...
Рейтинг: 0 / 0
Прошу совета бывалых проектантов низовой структуры БД.
    #34276699
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я бы добавил табличку "Семестры", и в ПреподыПредметы и Экзамен, соответственно, добавил ID семестра (преподаватель ведет данный предмет в данном семестре, экзамен принимает в данном семестре)- тогда проблема с удалением связи исчезнет.
Связь "преподаватель-группа" - насколько я понимаю, лишняя, она воспроизводится из Экзамена.
(Если не может быть ситуации, когда читал курс один преподаватель, а экзамен принимает другой.
Если может - в структуре надо вообще многое менять, добавлять в ПреподПредмет поле "Роль", etc.)
...
Рейтинг: 0 / 0
Прошу совета бывалых проектантов низовой структуры БД.
    #34276728
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинСвязь "преподаватель-группа" - насколько я понимаю, лишняя, она воспроизводится из Экзамена.

Тоже об этом подумал, но, пока ни один из студентов не сдал экзамен, в БД не будет информации о том в какой группе этот экзамен запланирован, какая группа должна сдать экзамен. Фактически его могут сдавать студенты из любых групп. Если такое случится, прямая связь экзамена с группой позволит однозначно определить группу студентов которая должна сдать этот экзамен и выявить посторонних студентов.
...
Рейтинг: 0 / 0
Прошу совета бывалых проектантов низовой структуры БД.
    #34276744
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Студент может одновременно учиться на разных факультетах?
...
Рейтинг: 0 / 0
Прошу совета бывалых проектантов низовой структуры БД.
    #34276768
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenab
Тоже об этом подумал, но, пока ни один из студентов не сдал экзамен, в БД не будет информации о том в какой группе этот экзамен запланирован, какая группа должна сдать экзамен.

Если запись об экамене не существует - этой информации и так не будет, связь "преподаватели-группы" тут никак не поможет.
Если существует (скажем, с датой = NULL) - не понимаю проблемы.

mcureenab
Если такое случится, прямая связь экзамена с группой позволит однозначно определить группу студентов которая должна сдать этот экзамен и выявить посторонних студентов.

Я не предлагаю убрать ссылку на группу из таблицы "экзамен", я предлагаю убрать таблицу "преподаватели-группы".
...
Рейтинг: 0 / 0
Прошу совета бывалых проектантов низовой структуры БД.
    #34276840
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой ёёё ой , включаю думатрон , щаз переварю что написали и отвечу.

нет студент может учиться только на 1 фак-те.
...
Рейтинг: 0 / 0
Прошу совета бывалых проектантов низовой структуры БД.
    #34276947
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 mcureenab

//Нехорошо то, что экзамен связан с преподавателем и предмет через другую связь - ПреподыПредметы.

Ну а как связать более корректно? Ведь группа сдает экзамен преподу, а в таблице ПреподыПредметы однозначно определенно что ведет (предмет) препод. Если есть идеи как по другому повязать – я весь во внимании !



2 Кот_Матроскин

Если препод читал курс то он и принимает,тут так. В остальном изменил структуру по твоему совету. Спасибо за подзатыльники и тычинки , респект.

Можно подробней про то , что мол при удалении некоторых данных потеряются результаты экзаменов. Например если шлепнуть препода, то по цепочке пойдет волна и смоет и его экзамены и результаты , но как верно ты заметил если ввести статус его (работает / уволился, курит) то проблема снимается.

Убил таблицы ПреподателиГруппы , верно ты сказал , это можно оперделить из экзаменов.

Добавил табличку семестр и ссылки на нее в ПреподыПрдеметы и Экзамен.

Все также не могу получить в запросе ЭТО ((((((((((

Добавляю пару таблицы, Джоин вся фигня и получаю в поле ID_PrepPredmet одни и те же значения , все одинаковые , не могу вьехать что не так.

АйдиСтудента
ФИО Студента
Предмет по которому сдавал экзамен (Название предмета)
Препод который принимал экзамен (ФИО)
Оценка по экзамену
Название Группы студента

Ну плюс в этом же запросе семестр сдачи экзамена.
...
Рейтинг: 0 / 0
Прошу совета бывалых проектантов низовой структуры БД.
    #34276972
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё , пошла резина , запросец сделал!!!

Дарт всем говорит спасибо , особое спасибо Мотроскину, завтра загляну может последнюю модель БД сожгут напалмом ))))
...
Рейтинг: 0 / 0
Прошу совета бывалых проектантов низовой структуры БД.
    #34276982
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
# Darth Vader #Такое впечатление, что ты стебаешься. Это не схема, это ужас в ночи. Навскидку в хаотическом порядке:
1. Зачем нужна сущность "Курс" ?
2. Почему сущность "Студенты" зависит от сущности "Группы" ?
3. Зачем нужно поле "ID" в сущности "Результаты экзаменов" ?
4. Почему от сущности "Семестры" есть связи к сущности "Экзамены" и "ПреподыПредметы" одновременно ?
5. Аналогично, почему от сущности "Группы" есть связи к сущности "Экзамены" и "Студенты" одновременно ?
6. Уже что-то подобное говорили. Если преподаватель умрет, как он будет принимать экзамен ?
7. ...more&more

В общем, все не так. Попробуй выделить, что и от чего действительно зависит, а что является независимым. Где есть история и где нет. И "не следует приумножать сущностей сверх необходимого".
...
Рейтинг: 0 / 0
Прошу совета бывалых проектантов низовой структуры БД.
    #34276991
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChAТакое впечатление, что ты стебаешься. Это не схема, это ужас в ночи. Навскидку в хаотическом порядке:


Вот нравятся мне прямые люди. Может я много где ошибся, но ты ошибся в одном- я не стебаюсь , бл буду .

ChA
1. Зачем нужна сущность "Курс" ?


Ну дык известно для чего, чтобы пнуть студента на курс, зафиксировать его там. Предлагаешь исключить вообще эту сущность? Ведь надо знать на каком курсе штундент учиться.

ChA
2. Почему сущность "Студенты" зависит от сущности "Группы" ?


А что тут такого? В группе может быть куча студентов. Студент может быть лишь в одной группе, по моему тут все в ажуре.

ChA
3. Зачем нужно поле "ID" в сущности "Результаты экзаменов" ?


Можно конечно было его убить, но привык что в каждой таблице есть поле первичного ключа.

ChA
4. Почему от сущности "Семестры" есть связи к сущности "Экзамены" и "ПреподыПредметы" одновременно ?


Потому что экзамен будет сдаваться в оперерделенном семестре, а препод ведет предмет тоже по семестрам, можно поглядеть будет когда и что велось.


ChA
5. Аналогично, почему от сущности "Группы" есть связи к сущности "Экзамены" и "Студенты" одновременно ?


Экзамен сдает группа, это как факт который свершится, в таблице Экзамены те экзамены которые впереди , а в таблице РезультатыЭкзаменов лишь результаты, предлагаешь это все вместе слить?


ChA
6. Уже что-то подобное говорили. Если преподаватель умрет, как он будет принимать экзамен ?


В таблице экзаменов либо убивается запись либо правится на другого препода.

ChA
В общем, все не так. Попробуй выделить, что и от чего действительно зависит, а что является независимым. Где есть история и где нет. И "не следует приумножать сущностей сверх необходимого".

Вот поэтому я пихнул сюда свои старания, чтобы такие монстры как ТЫ (поверь это не сарказм) помогли мне так сказать в боевой обстановке.

Покажи мастер класс, наваяй свою версию или поправь мой вариант, если ты не считаешь конечно , что впустую потратишь время, для меня это будет хорошей школой и бл буду , что реально буду очень благодарен !
...
Рейтинг: 0 / 0
Прошу совета бывалых проектантов низовой структуры БД.
    #34276999
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
# 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 #Покажи мастер класс, наваяй свою версию или поправь мой вариант, если ты не считаешь конечно , что впустую потратишь время, для меня это будет хорошей школой и бл буду , что реально буду очень благодарен !Ни в коем случае, гораздо важнее тебе самому понять, почему именно так, а не иначе. Так что извини. Но, если что будет не так, тебе здесь скажут, не сумлевайся :)
...
Рейтинг: 0 / 0
Прошу совета бывалых проектантов низовой структуры БД.
    #34277004
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChA
Да, и кстати, почему курс зависит от факультета ?
Военное училище потому что. Группа = взвод. Курс = рота. Факультет =
батальон.

ChA
Первичный ключ - это святое, но в твоей схеме такую роль может играть пара
(ID_Ex, ID_Stud). Надобность в другом ключе отсутствует.


В принципе, верно, что придерживаешься привычной схемы. Хотя конечно, толку
от этого Id мало.


Лучше экзамен напрямую к преподу прицепи. Может быть, что и не один препод
будет: а экзаменационная комиссия переменного состава.

И Экзамен , мо-моему, напрямую к предмету завязать нужно. Тут уж точно
вариаций быть не может.
Бывает, что экзамен один за два семестра, и даже больше.
В общем, тут надо вычислять на месте.


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Прошу совета бывалых проектантов низовой структуры БД.
    #34277835
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChA
4. Почему от сущности "Семестры" есть связи к сущности "Экзамены" и "ПреподыПредметы" одновременно ?

Это я слегка маху дал, дав такой совет :) Не заметил, что в сущности "ПреподыПредметы" ключ суррогатный, как-то автоматом решил, что ключ там составной (ID_predm, ID_prepod). Тогда при добавлении семестра его нужно добавить в ключ, а следовательно, во все таблицы, ссылающиеся на "ПреподыПредметы". Если ключ не составной, а IDшник, то ID семестра в "Экзаменах" и правда,
конечно, не нужен.
...
Рейтинг: 0 / 0
Прошу совета бывалых проектантов низовой структуры БД.
    #34277992
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ChA

Спасибо за советы, щаз будем ломать.
...
Рейтинг: 0 / 0
Прошу совета бывалых проектантов низовой структуры БД.
    #34278873
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имя группы будет вычисляться по ее айдишнику+номеру_семестра_коду кафедры

Теперь чтобы перевести группу на другой курс достаточно для нее указать другой айдишник семестра. Всего таких айдишников 10 - первые семестры 5 курсов и соответственно вторые семестры 5 курсов

Группа зависит от семестра и кафедры , семест может поменяться , кафедра одна и та же

Экзамен проводится у препода по указному предмету (ту думал, так как препод может вести несколько предметов, то можно указать код предмета )

Воопщем морщил репу со страшной силой, ясен фиг есть нестыковки. Но может все таки ближе к «Не тихому ужасу» ?
...
Рейтинг: 0 / 0
Прошу совета бывалых проектантов низовой структуры БД.
    #34278968
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну я бы кафедры и факультеты вообще бы деревом сделал.Кто знает,что придумает ректор через год.Может быть новые орг структуры с другим делением.
...
Рейтинг: 0 / 0
Прошу совета бывалых проектантов низовой структуры БД.
    #34279067
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
# Darth Vader #2 mcureenab

//Нехорошо то, что экзамен связан с преподавателем и предмет через другую связь - ПреподыПредметы.

Ну а как связать более корректно? Ведь группа сдает экзамен преподу, а в таблице ПреподыПредметы однозначно определенно что ведет (предмет) препод. Если есть идеи как по другому повязать – я весь во внимании !

Ты уже сделал.
...
Рейтинг: 0 / 0
Прошу совета бывалых проектантов низовой структуры БД.
    #34279123
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос. Что такое Группа, что такое Студент и почему ID группы является атрибутом Студента?

ИМХО, группа это только её учётный номер. Группу и Студента можно слить в одну таблицу Группы, которая устанавливает связь Факультет, Семестр, Оценки, и ссылается на Человека по ФИО, а также сожержит номер группы. Запрос по Факультет, Семестр, Номер группы вернёт нам студентов группы.

Таблица экзамен тоже вызывает сомнение, поскольку оценка выставляется определённым преподавателем, определённому студенту в группе, по определённому предмету.
Экзамен может служить для планирования мероприятия. Но если требуется учёт состоявшихся экзаменов, то она не нужна.
...
Рейтинг: 0 / 0
Прошу совета бывалых проектантов низовой структуры БД.
    #34279177
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
# Darth Vader #Но может все таки ближе к «Не тихому ужасу» ?Лучшее :) Хотя вопросы еще остаются. Опять же навскидку:
1. По схеме получается, что студенты разных лет, но из одной группы будут считаться находящимися в одной группе.
2. Меняя семестр группе ты меняешь его и тем, кто учился в такой же группе, но, например, год назад.
3. Предметы перестали быть связанными с семестром.

Наводка: если правильно помню, то существует такое понятие, как учебный план.
На пиво сам наскребешь ;)

P.S. На самом деле в Инете можно найти уже готовые схемы такого рода, но лучше самому.

Shtockкафедры и факультеты вообще бы деревом сделал.Кто знает,что придумает ректор через год.Может быть новые орг структуры с другим делением.Такая структура высших заведений, если не ошибаюсь, существует не один век. Но если вдруг такое с будуна какому-то ректору и втемяшится, то это не приведет к кардинальной переделке окончательной схемы.
...
Рейтинг: 0 / 0
Прошу совета бывалых проектантов низовой структуры БД.
    #34279814
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Человек по-моему нечестно поступает. В одной из контор при приёме на работу данная задача явлется тестом, причём заочным.
...
Рейтинг: 0 / 0
Прошу совета бывалых проектантов низовой структуры БД.
    #34279835
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old NickЧеловек по-моему нечестно поступает. В одной из контор при приёме на работу данная задача явлется тестом, причём заочным.Даже если это так, ему здесь явного ответа пока не дают, сам борется.
...
Рейтинг: 0 / 0
Прошу совета бывалых проектантов низовой структуры БД.
    #34280333
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old NickЧеловек по-моему нечестно поступает. В одной из контор при приёме на работу данная задача явлется тестом, причём заочным.

Нет уважаемый , это надо не для теста. не надо быть снобом , меня направляли , а не делали за меня.
...
Рейтинг: 0 / 0
Прошу совета бывалых проектантов низовой структуры БД.
    #34280345
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача вроде очень ограниченная - "учитываются данные по сдаче экзаменов".
Не проще отталкиваться от экзаменационной ведомости?

Шапка ведомости: t1 (Название предмета, ФИО препода, Название группы)
Строки ведомости: t2 (ФИО студента, оценка)

Если кроме того требуется первичный учёт преподавателей, предметов и студентов, то придётся завести соответсвующие таблицы. Но по задаче это вроде не требуется. Только не ясно с id студента. Это № студенческого билета?
...
Рейтинг: 0 / 0
Прошу совета бывалых проектантов низовой структуры БД.
    #34280396
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот , ваял со страшной силой, учел подзатыльники уважаемых джедаев магистров mcureenab и chA . блин надо хоть пойти пожрать ...

2 mcureenab

надо слепить БД в которой будут данные по сдаче экзаменов в универе , да с ведением протоколов если это можно так назвать учебы студентов.

Я вот например учился, у нас на курсе было четыре группы, названия каждой менялись из года в год , наша сначала была 104 потом 204 потом 304 .... 504 - дедули. я упростил и сделал допущение что номер группы указывается произвольно и номера групп новых студентов и окончивших учебу уже могут сопадать, но айдишники то разные, значит надо ввести статус студента - учится/свалил, типа того что ли.
...
Рейтинг: 0 / 0
Прошу совета бывалых проектантов низовой структуры БД.
    #34281363
Фотография Rin@t
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 # Darth Vader #.

В новой схеме не вижу дату проведения экзамена. Кроме экзаменов, увы, есть ещё и переэкзаменовки.
...
Рейтинг: 0 / 0
Прошу совета бывалых проектантов низовой структуры БД.
    #34281443
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
# Darth Vader #Я вот например учился, у нас на курсе было четыре группы, названия каждой менялись из года в год , наша сначала была 104 потом 204 потом 304 .... 504 - дедули. яЭто значит группы имеют историю по годам (кроме номера может например куратор меняться). И студенты тоже, и связка идет от истории студента к группе.
В 2006 году Коля и Оля учились вместе в 104. А в 2007 в разных : Коля все с тем же номером 104 но от 2007 г., а Оля все в той же группе, но теперь она имеет номер 204.
Перечень лет можно выделить отдельной таблицей УчебныйГод.
...
Рейтинг: 0 / 0
Прошу совета бывалых проектантов низовой структуры БД.
    #34281825
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelR # Darth Vader #Я вот например учился, у нас на курсе было четыре группы, названия каждой менялись из года в год , наша сначала была 104 потом 204 потом 304 .... 504 - дедули. яЭто значит группы имеют историю по годам (кроме номера может например куратор меняться). И студенты тоже, и связка идет от истории студента к группе.
В 2006 году Коля и Оля учились вместе в 104. А в 2007 в разных : Коля все с тем же номером 104 но от 2007 г., а Оля все в той же группе, но теперь она имеет номер 204.
Перечень лет можно выделить отдельной таблицей УчебныйГод.

Это говорит о том, что нужно уйти от абстракций и обратить внимание на факты.
В данном случае группа, это документ - список группы и дополнительные сведения (которые пока не требовались, поэтому их нет в модели БД). Каждый год составляется новые списки групп, а старые списки отправляются в архив. Без такого документа, группа, всего лишь неформальное объединение.


История по годам и вообще какая либо история изменений - существенное усложнение модели. Лучше рассматривать не изменение номера группы из года в год, а ежегодное формирование новой группы. Для удобства идентификации к номеру группы можно ещё добавить год.

Что такое студенты, тоже не совсем понятно. Студен, это не объект, а связь человека с учебным заведением. Полагаю, лучше говорить о студенческом билете, зачётной книжке.
...
Рейтинг: 0 / 0
Прошу совета бывалых проектантов низовой структуры БД.
    #34281946
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenab
История по годам и вообще какая либо история изменений - существенное усложнение модели. Лучше рассматривать не изменение номера группы из года в год, а ежегодное формирование новой группы. Для удобства идентификации к номеру группы можно ещё добавить год.
Разве невозможна ситуация с переходом студента из группы в группу по так сказать личным мотивам и заявлению?

mcureenabЧто такое студенты, тоже не совсем понятно. Студен, это не объект, а связь человека с учебным заведением. Полагаю, лучше говорить о студенческом билете, зачётной книжке.
Не согласен, а контрагент в бухгалтерии это получается не лицо а связь одной конторы с другой? и надо говорить об ИНН и номере паспорта? Бред. Не стоит усложнять то что усложнять не стоит. Есть физическое лицо (студент) которое состоит или состояло в договорных отношениях с учебным заведением. А номера студенческих билетов, договоров с институтом и прочее это дополнительная информация.
...
Рейтинг: 0 / 0
Прошу совета бывалых проектантов низовой структуры БД.
    #34288852
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenabВ данном случае группа, это документ - список группы и дополнительные сведения (которые пока не требовались, поэтому их нет в модели БД). Каждый год составляется новые списки групп, а старые списки отправляются в архив. Без такого документа, группа, всего лишь неформальное объединение.


История по годам и вообще какая либо история изменений - существенное усложнение модели. Лучше рассматривать не изменение номера группы из года в год, а ежегодное формирование новой группы.Так теряется общность группы по годам. Хотя можно восстановить задав идентификатор специальности, потока, правила нумерации.
EstetsНе согласен, а контрагент в бухгалтерии это получается не лицо а связь одной конторы с другой?На самом деле так и есть. Если рассматривать больше одной конторы и их взаимосвязи.
...
Рейтинг: 0 / 0
Прошу совета бывалых проектантов низовой структуры БД.
    #34290564
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EstetsЕсть физическое лицо (студент) которое состоит или состояло в договорных отношениях с учебным заведением. А номера студенческих билетов, договоров с институтом и прочее это дополнительная информация.

"Студент", это не физическое лицо а роль. На человеке не написано, что он студент. (Правда, история знает и такие примеры учёта физических лиц). Эта роль формализована документом. Чтобы купить льготный проездной, мне приходилось предъявлять студенческий билет, с записью, что в период с года x по x+1 я учусь на таком то курсе и печатью.
Часто, человек не может иметь более одной связи с организацией, что позволяет приравнять два понятия, но в общем случае это не так.
С другой стороны человек может иметь несколько удостоверений личности, и использовать их для создания нескольких связей с организацией, даже если это запрещено. В этом случае приходится проверять подлинность документа и принимать в рассмотрение только один вид документов (например только паспорт гражданина РФ), наводить справки в органах, которые ведут первичный учёт этих документов.

В данном случае один и тот же человек может числиться студентом разных групп сколько угодно раз, с разными Id. ИМХО, в качестве Id записи в таблице студентов удобно использовать № студенческого билета.
...
Рейтинг: 0 / 0
Прошу совета бывалых проектантов низовой структуры БД.
    #34290653
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelRТак теряется общность группы по годам. Хотя можно восстановить задав идентификатор специальности, потока, правила нумерации.

Да, собственно так и делают. "Общность" группы понятие неформальное, его невозможно ичитывать. А вот специальность, поток, это другое дело.

Если изменить точку зрения, можно говорить, что ВУЗ имеет учебный план на 6 лет по подготовке x специалистов по профессии y к году z. К этому плану на каждый семестр привязана группа. По мере обучения студента включают в определённую группу, отправляют в отпуск или исключают из ВУЗа.
После отпуска или перехода из другого ВУЗа или курса студент может быть включен в группу из другого учебного плана (возможно, по той же специальности, но с другой датой выпуска). При этом ему придётся ликвидировать разницу в учебных планах, сдать все необходимые для обучения в данной группе зачёты и экзамены.
...
Рейтинг: 0 / 0
Прошу совета бывалых проектантов низовой структуры БД.
    #34290725
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ситуация:
1. Студент весной взял академический отпуск на год. До этого он (экстерном или нет) сдал пару экзаменов.
2. Менее чем через год зимой этот же студент появляется в ВУЗе и продолжает учиться с того же курса, но уже в другой группе . При этом номер студенческой книжки у него не меняется . При этом ему зачитывают 1 экзамен, но не засчитывают 2-й. При этом даже тот экзамен, что засчитали, формально ставит не тот преподаватель, что его принимал год назад, а другой (текущий).
Надеюсь, теперь понятно, что идентифицирует студента и что студент на одном и том же курсе может учиться в разных группах?
...
Рейтинг: 0 / 0
Прошу совета бывалых проектантов низовой структуры БД.
    #34291647
Cool!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я просто задам вопросы:
1. Представте себе событие: Студент получает оценку.
Каким минимальным набором характеристик определяется объект Студент?
2. Если студент уходит в академ, переводится в другую группу, какие характеристики у объекта студент должны менятся? (Предположение: Студент в академе не должен учитываться вообще)
3. Если проводится экзамен, то как и чем характеризовать объект Экзамен и как его пересечь с объектом Студент?
4. Есть объект Группа(Курс+группа). Чем его характеризовать и как пересечь его с объектами Экзамен и Студент.
Естественно что для каждого из этих объектов должна быть создана таблица с где поля соответствуют характеристикам объектов.

Вообще, проще все это представить в виде пересечения нескольких n-мерных пространств (где n - различно) типа: пространство, плоскость, прямая. положение прямой однозначно определяется как в пространстве так и на плоскости, а положение плоскости однозначно определяется в пространстве через любые две непаралельные прямые принадлежащие этой плоскости.
Очевидно что любые действия с прямой или плоскостью (создание, перемещение, удаление) можно однозначно определить через соответствующие уравнения и понятия времени.
(Это всего лишь аналогия)
...
Рейтинг: 0 / 0
Прошу совета бывалых проектантов низовой структуры БД.
    #34292596
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cool!Вообще, проще все это представить в виде пересечения нескольких n-мерных пространств ...

Проще для OLAP системы. Для OLTP системы такое представление непригодно в виду слабой связи с объектами реального мира - студенческие, зачётки, списки групп, экзаменационные ведомости, штатное расписание и т.п..
...
Рейтинг: 0 / 0
36 сообщений из 36, показаны все 2 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Прошу совета бывалых проектантов низовой структуры БД.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]