powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Прошу совета бывалых проектантов низовой структуры БД.
25 сообщений из 36, страница 1 из 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
25 сообщений из 36, страница 1 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Прошу совета бывалых проектантов низовой структуры БД.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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