powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Модель БД "Ведение базы данных формирования груп обучения"
25 сообщений из 41, страница 1 из 2
Модель БД "Ведение базы данных формирования груп обучения"
    #39119984
laferro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите - достаточно ли таблиц, или есть лишние, что необходимо исправить, верно ли составлена схема (файл-картинка прилагается) для следующей БД:

В начале каждого семестра студенты имеют возможность посмотреть каталог курсов, который содержит список предметов, которые изучаются в этом семестре. Информация о курсах должна включать фамилию преподавателя, название факультета и короткое описание, которое помогает студенту сделать выбор.
Система что проецируется позволит студенту избрать четыре курса в следующем семестре. Кроме того, каждому студенту необходимо дополнительно указать еще два варианта, на случай если курс будет переполнен или отменён. На курс не должно быть записано больше двадцати или менее пяти студентов. Курс, на который запишется менее чем пять студентов, будет отменено. По завершению регистрации система направляет информацию в систему оплаты для установления счетов студентам.
Преподаватели должны иметь возможность доступа к системы для избрания курса, которые они будут излагать.
В каждом семестре выделяется определенное время, на протяжении которого студенты могут менять свое расписание и получать доступ к системы для добавления или отличия избранных курсов. Система должна иметь возможности выдать:
 список курсов,
 групп, сформированных для курса,
 список занятых преподавателей
 список отмененных курсов.
...
Рейтинг: 0 / 0
Модель БД "Ведение базы данных формирования груп обучения"
    #39120002
Z_Kolo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У студента код группы прописан. Привязки к семестру нет.

Модератор: Тема перенесена из форума "Microsoft SQL Server".
...
Рейтинг: 0 / 0
Модель БД "Ведение базы данных формирования груп обучения"
    #39120238
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы еще студента соединил с предподавателем и разместил бы квадратики в виде окружности. Чтобы красиво смотрелось ))
laferro
...
Рейтинг: 0 / 0
Модель БД "Ведение базы данных формирования груп обучения"
    #39120271
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Много всего неправильного по схеме +

создается впечатление, что схема взята от другой задачи про учебные планы :)
...
Рейтинг: 0 / 0
Модель БД "Ведение базы данных формирования груп обучения"
    #39120536
Mr.Fontaine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По-моему, лучше разделять дисциплины отдельно, преподавателей отдельно и сделать связующую таблицу Дисциплина_преподаватели. Чтоб одну дисциплину могли читать несколько преподавателей. И студенты могли выбрать не только название дисциплины, но и преподавателя.
...
Рейтинг: 0 / 0
Модель БД "Ведение базы данных формирования груп обучения"
    #39120541
Mr.Fontaine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя проще не извращаться с новой табличкой. Достаточно перенести преподавателя из таблицы "Дисциплина" в таблицу "Учебный план"
...
Рейтинг: 0 / 0
Модель БД "Ведение базы данных формирования груп обучения"
    #39121091
laferro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mr.FontaineХотя проще не извращаться с новой табличкой. Достаточно перенести преподавателя из таблицы "Дисциплина" в таблицу "Учебный план"

Спасибо.
...
Рейтинг: 0 / 0
Модель БД "Ведение базы данных формирования груп обучения"
    #39121096
laferro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кот МатроскинМного всего неправильного по схеме +

создается впечатление, что схема взята от другой задачи про учебные планы :)


Что не правильно? Много информации перечитано, но схема писана из моего представления, как необходимо начать построение таблиц базы данных.. Хотелось бы сразу правильно создать таблицы и связи между ними, чтоб потом не добавлять и не менять.. Хотя, возможно, это будет необходимо.
...
Рейтинг: 0 / 0
Модель БД "Ведение базы данных формирования груп обучения"
    #39121563
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
laferro,

Ну например - что делает в Группе код студента?
...
Рейтинг: 0 / 0
Модель БД "Ведение базы данных формирования груп обучения"
    #39121577
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
laferro,

как минимум, таблица "ГРуппа" неправильна.
...
Рейтинг: 0 / 0
Модель БД "Ведение базы данных формирования груп обучения"
    #39121603
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivкак минимум, таблица "ГРуппа" неправильна.

шутите? )))
1) Это не схема базы данных - а просто некие прямоугольнички с попыткой набросать поля
2) Учебный план ахинея полная. Ну никак не может быть в Учебном плане ссылка на Дисциплину. Наоборот еще куда не шло, но нужно понимать постановку задачи.
3) Дисциплину может вести больше чем один преподаватель

Рекомендую студенту взяться за ум и открыть учебник.
В базе данных просто полей не достаточно. Нужны типы полей, первичные ключи, внешние ключи, индексы.
...
Рейтинг: 0 / 0
Модель БД "Ведение базы данных формирования груп обучения"
    #39121616
Pulsar_p
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
laferro,
Преподаватель может преподавать в разных группах, одни и те же дисциплины могут быть в разных группах, одну дисциплину в одной группе могут преподавать разные преподаватели. Я создал таблицу-посредник между преподавателями, группами и дисциплинами. Как-то вот так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
CREATE TABLE [dbo].[groups.teachers](
	[idgroup_teacher] [int] NOT NULL,
	[group_tea] [int] NOT NULL,
	[teacher] [int] NOT NULL,
	[discipline] [int] NOT NULL,
	[on_ratings] [bit] NULL,
 CONSTRAINT [PK_groups.teachers] PRIMARY KEY CLUSTERED 
...
Рейтинг: 0 / 0
Модель БД "Ведение базы данных формирования груп обучения"
    #39121618
Pulsar_p
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
laferro,
Навскидку: как вам правильно заметили, надо из файла групп убрать студентов, и, лично у меня в файле дисциплин нет преподавателей по той же самой причине.
...
Рейтинг: 0 / 0
Модель БД "Ведение базы данных формирования груп обучения"
    #39122021
Mr.Fontaine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pulsar_p, в задании слово "группа" отсутствует полностью. Потому думаю, что правильнее грохнуть всю таблицу "Группа". Она в данной БД вообще не должна существовать, ибо из описания задачи следует, что групп как таковых нет.
...
Рейтинг: 0 / 0
Модель БД "Ведение базы данных формирования груп обучения"
    #39122027
Mr.Fontaine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
laferroКот МатроскинМного всего неправильного по схеме +

создается впечатление, что схема взята от другой задачи про учебные планы :)


Что не правильно? Много информации перечитано, но схема писана из моего представления, как необходимо начать построение таблиц базы данных.. Хотелось бы сразу правильно создать таблицы и связи между ними, чтоб потом не добавлять и не менять.. Хотя, возможно, это будет необходимо.
ну например, я за время обеда составил вот такую схемку
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
дисциплина (id, namе)
курс (id, name, id_дисциплина, количество часов)
семестр(id, name)
курсы_семетра(id, id_семестр, id_курс)
преподаватель (id, ФИО)
преподаватели_курсов(id, id_курсы_семестра, id_преподаватель)
студент(id, ФИО)
студенты_курсы(id_студент, id_преподаватели_курсов, is_main)


Рисовать естественно нет желания, потому в текстовом виде, надеюсь разберётесь. По-моему так правильнее, по- крайней мере появляется понятие семестра, который описан в задании, а в ВАшей схеме никак не отражён.

Ну а уж принадлежность к факультету, привязку оплаты, всякие дополнительные фишки(например, у меня крутится в голове "авторский курс", но так как в задании про него ничего нет, не стал в таблички пихать) можете самостоятельно доделать.
...
Рейтинг: 0 / 0
Модель БД "Ведение базы данных формирования груп обучения"
    #39122116
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr.FontainePulsar_p, в задании слово "группа" отсутствует полностью.

В задании и слово "оплата" отсутствует полностью ;) поэтому я и сказал - похоже что схема от другого задания про студентов, а ТС хочет натянуть сову на глобус.
...
Рейтинг: 0 / 0
Модель БД "Ведение базы данных формирования груп обучения"
    #39122729
Pulsar_p
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr.FontainePulsar_p, в задании слово "группа" отсутствует полностью.
...


ТопикСтартерСистема должна иметь возможности выдать:
...
групп, сформированных для курса,
...
...
Рейтинг: 0 / 0
Модель БД "Ведение базы данных формирования груп обучения"
    #39122731
Pulsar_p
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr.Fontaine...
ну например, я за время обеда составил вот такую схемку
курс (id, name, id_дисциплина, количество часов)
семестр(id, name)
курсы_семетра(id, id_семестр, id_курс)

...


Поле курс должно находится в файле групп. Каждый год это значение увеличивается на единицу, а затем после завершения обучения весь курс в полном составе удаляется или идет в архив (в зависимости от условий).
ИМХО: Поле семестр не нужно вообще. Хотя это спорное утверждение, от проектирования базы зависит. Пусть ТС сам решает.

Mr.Fontaineкурсы_семетра(id, id_семестр, id_курс)
преподаватели_курсов(id, id_курсы_семестра, id_преподаватель)
студенты_курсы(id_студент, id_преподаватели_курсов, is_main)

Не понял, зачем это нужно.
...
Рейтинг: 0 / 0
Модель БД "Ведение базы данных формирования груп обучения"
    #39122813
Mr.Fontaine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pulsar_p, читая Вас, создалось впечатление, что Вы говорите о курсе как о количественном измерении времени обучения в институте (абитуриент поступает на первый курс, затем переходит на второй курс и т.д.). Вы отойдите от этой позиции, взглянув, что курс может быть курсом лекций (то есть некоей последовательностью лекций по одному предмету связанных одной общей темой). Честно говоря, читая постановку задачи у меня лично создалось ощущение именно о "курсе лекций", а не о "курсе", как о порядковом номере года обучения.

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

Исходя из этого и в связи с тем, что моя схема вызвала много непонимания опишу её.
Начнём с того, что существуют дисциплины, которые понятно надо хранить в таблице "ДИСЦИПЛИНА"
id namе1 математика2 физика
есть студенты
id ФИО1 Иванов С.П2 Петров В.А
есть преподаватели
id ФИО1 Иванов П.С2 Петров А.В
Есть промежуток времени, в течение которого, преподаватели читают лекции, а студенты слушают их. В постановке задачи упоминается слово "семестр", которое как мне кажется подходит для этой цели
id name1 осенний семестр 2015 года2 весенний семестр 2016 года
Может конечно и не очень пока что понятно зачем она нужна, но думаю в дальнейшем мысль необходимости такой таблицы придёт, так как по каждой дисциплине существуют некие курсы, для которых есть табличка "Курсы"
id name id_дисциплина количество часов1 дискретная математика 1 202 динамическое изменение состояния сферического коня в вакууме при отсутвтии влияния внешних факторов 2 55
которые могут читаться в только в определённый период, а могут и не читаться (ну например, зачем зимой читать курс лекций "Подготовка саней к эксплуатации в зимний период"?), поэтому студенты должны знать смогут ли они в заданный промежуток времени, называемый семестром посетить курс лекций по определению зависимости величины пестика от цвета и консистенции тычинок. Из-за этого необходимо указать наличие курсов в указанный промежуток времени (вот тут и понимаешь, что семестр в общем-то нужен нам в БД). К тому же в этой таблице следует предусмотреть поле со статусом назначенного для проведения курса (а то как построить отчёт об отменённых курсах?)
id id_семестр id_курс статус1 1 2 'назначен'2 2 1 'отменён'
Но информации о наличии курсов длля студентов мало, им требуется знать, от кого они будут получать знания, но так как специалистов по сферическим коням в учебном заведении может быть несколько, и они все хотят поделиться своими знаниями с окружающими, то информацию о преподавателях, читающих тот или иной курс лекций, необходимо выделить в отдельную табличку (некий список заявок преподавателей на проведение определённого курса лекций)
id id_курсы_семестра id_преподаватель1 1 1 2 2 2

ну вот, вроде бы вся справочная информация готова. Теперь осталась одна табличка: заявки студентов на посещение курсов лекций (опять же так как студенты записываются на курс к определённому преподавателю, то и привязываем заявку студента к таблице заявок преподавателей на проведение курсов,а не просто к курсам как таковым
id_студент id_преподаватели_курсов state_id
Зачем требуется поле state_id? Например, для того, чтобы студенты по условиям задачи указывали какие четыре курса они хотят посетить обязательно (в этом случае, в этом поле можно записывать знаечние 1) и какие два курса лекций они могут посетить, только для того, чтобы набрать определённое количество прослушанных курсов (по условиям задачи каждый студент за один семестр должен прослушать четыре курса, ни больше ни меньше), тогда в этом поле можно записвать знаечние 0
Понятно, что первоначально в этой таблице будут просо пожелания студентов, из-за ограничения по количеству посещающих курсы все эти пожелания могут измениться, то есть требуется отдельная табличка в которой будут записаны все утверждённые заявки студентов. Но зачем создавать новую таблицу, если в поле state_id можно записать значение 2, которое говорит о том, что заявка студента утверждена и ему разрешено посещать указанным им курс лекций.

P.S. Понятно, что в таблицах указаны не все поля, думается мне, что в ряде таблиц требуется добавить некую дополнительную информацию, но это уже на усмотрение автора, как ему лучше видится конкретная ситуация в учебном заведении
...
Рейтинг: 0 / 0
Модель БД "Ведение базы данных формирования груп обучения"
    #39122898
Pulsar_p
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr.Fontaine...
Есть промежуток времени, в течение которого, преподаватели читают лекции, а студенты слушают их. В постановке задачи упоминается слово "семестр", которое как мне кажется подходит для этой цели
id name1 осенний семестр 2015 года2 весенний семестр 2016 года
...

И все-таки, я считаю, что поле семестр не нужно вообще. Точно так же, как нет поля summa в таблице [Order Details] майкрософтовской учебной базы Northwind , потому как значение это вычисляемое.
Ну хорошо, допустим у вас есть поле семестр. Кстати, а куда вы его воткнете?
Физика начинается 1 октября. Дата начала курса ведь все равно будет. Неужели по ней нельзя вычислить, какой это семестр? Ладно, вы поставили, что это первый семестр. А если она заканчивается в апреле? Тогда к какому семестру эту дисциплину отнести? Или создать поле семестрконец?
...
Рейтинг: 0 / 0
Модель БД "Ведение базы данных формирования груп обучения"
    #39123070
Mr.Fontaine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pulsar_pФизика начинается 1 октября. Дата начала курса ведь все равно будет. Неужели по ней нельзя вычислить, какой это семестр? И как вычислить? Формулу для расчёта напишите?
...
Рейтинг: 0 / 0
Модель БД "Ведение базы данных формирования груп обучения"
    #39123094
Mr.Fontaine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pulsar_p, если уж Вы так прицепились к понятию "семестр", то хотелось бы понять что Вы пож этим словом подразумеваете.
Вот смотрите, что в постановке задачи про семестры написано: "В начале каждого семестра студенты имеют возможность посмотреть каталог курсов, который содержит список предметов, которые изучаются в этом семестре". Заметьте, что у семестра должно быть начало, а вот про начало курсов пока что речи нет. И непонятно почему физика должна начаться 1 октября. Откуда такая информация?
В начале семестра есть только желание администрации учебного заведения провести курс лекций по физике. Они и создают в БД запись об этом. Без дат, заметьте. Потому как ещё непонятно сколько преподавателей вызовется читать лекции по физике. Может никто не захочет читать лекции? Так что мы назначаем на первое октября и далее разбрасывая учебные часы по семестру?
А может быть несколько преподавателей откликнутся на проведение курса. Какого преподавателя приглашать первого октября?
Следующий этап организации курсов - выражение желания прослушать курсы у студентов. Может быть о никто не заинтересовался физикой, до все несколько преподавателей будут заняты под завязку, а некоторых студентов придётся не пускать на курсы.
И вот уже когда определились что курсы по физике будут и сколько преподавателей смогло найти необходимое число желающих на свои курсы, то уже тогда зная количество курсов по физике (а лучше вообще всех курсов по всем предметам в семестре) и стоит озадачиться расписанием и определением какого октября какой преподаватель начнёт читать курс лекций по физике. Так вот к этому времени термин "Семестр" уже много где должен использоваться (при определении списка курсов, при расчёте какие курсы студенты будут посещать). Как вы сможете определить список четырех посещаемых каждым студентом курсов, если на момент этого расчёта нет дат начала курсов, потому по Вашему алгоритму не получится вычислить к какому семестру принадлежит курс лекций?
...
Рейтинг: 0 / 0
Модель БД "Ведение базы данных формирования груп обучения"
    #39123104
Mr.Fontaine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Причём смею обратить Ваше, Pulsar_p, внимание, что по моему пониманию, в данной задаче семестр это просто произвольно заданный интервал времени, у которого кстати изначально при создании записи о семестре может быть только дата начала (чтоб можно было определять периоды разрешения подачи заявок на проведение курсов и подачи заявок на прослушивание курсов). Даты окончания семестра изначально может и не существовать. Она может появиться только после определения количества проводимых в семестре курсов (чтобы все курсы смогли физически закончиться, если физика закончится в апреле, значит и семестр закончится в апреле). А может и вообще дата окончания семестра не появиться. Где в условиях задачи Вы увидели, что октябрь и апрель должны быть обязательно разными семестрами?
...
Рейтинг: 0 / 0
Модель БД "Ведение базы данных формирования груп обучения"
    #39123187
Pulsar_p
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr.FontainePulsar_pФизика начинается 1 октября. Дата начала курса ведь все равно будет. Неужели по ней нельзя вычислить, какой это семестр? И как вычислить? Формулу для расчёта напишите?
Код: sql
1.
SELECT IIF (month(getdate()) BETWEEN 9 AND 12, 1, 2) --семестр на текущую дату



По поводу всего остального не вижу особого смысла дискутировать. По-своему вы правы.
...
Рейтинг: 0 / 0
Модель БД "Ведение базы данных формирования груп обучения"
    #39123250
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pulsar_p,

Что формула покажет 1 января? а 1 июля?
...
Рейтинг: 0 / 0
25 сообщений из 41, страница 1 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Модель БД "Ведение базы данных формирования груп обучения"
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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