powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Разработка БД. Нужна помощь.
23 сообщений из 48, страница 2 из 2
Разработка БД. Нужна помощь.
    #36903158
Кифирчик,

Спасибо за помощь. А такое условие из-за того что отчеты будут выводится только по группам и студентам в частности.
...
Рейтинг: 0 / 0
Разработка БД. Нужна помощь.
    #36903159
Кифирчик,

Спасибо за помощь. А такое условие из-за того что отчеты будут выводится только по группам и студентам в частности.
...
Рейтинг: 0 / 0
Разработка БД. Нужна помощь.
    #36903229
Кифирчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МанагерчегА такое условие из-за того что отчеты будут выводится только по группам и студентам в частности.
я не понял что вы хотите спросить
...
Рейтинг: 0 / 0
Разработка БД. Нужна помощь.
    #36903230
Кифирчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
понял... это ответ )
...
Рейтинг: 0 / 0
Разработка БД. Нужна помощь.
    #36903259
Кифирчик,

))))


+хочу добавить что будет 12 оценок. 10 - т.е за каждый месяц по одному предмету каждому ученику + 2 семестровые. Нужно еще продумывать и этот ход((
...
Рейтинг: 0 / 0
Разработка БД. Нужна помощь.
    #36903317
Кифирчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Манагерчег,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
-- группы
group_list
 - g_id
 - g_name

-- студенты
student_list
 - s_id
 - g_id (код группы)
 - s_name
 - ....

-- преподаватели
prepod_list
 - pr_id
 - pr_name

-- предметы
subject_list
 - sbj_id
 - sbj_name

-- связи предметы - группы
group_subject_list
 - gs_id
 - g_id (код группы)
 - sbj_id (код предмета)
 - gs_param (порядковый номер предмета,  1 ... 12 )

-- оценки
mark_list
 - mark_id
 - s_id (код студента)
 - pr_id (код преподавателя)
 - sbj_id (код предмета)
 - mark_value (оценка)
 - mark_date (дата выставления)

-- примерно такие две вьюхи
view group_subject_list_view as
select a.*, b.sbj_name
from group_subject_list as a
left join subject_list as b on b.sbj_id = a.sbj_id

view mark_list_view as
select a.mark_id, b.gs_param, c.sbj_name, d.g_name, 
max(a.mark_value) as mark_value -- :))))))
from mark_list as a
left join group_subject_list as b on b.sbj_id = a.sbj_id
left join subject_list as c on c.sbj_id = a.sbj_id
left join group_list as d on d.g_id = b.g_id
group by a.mark_id, b.gs_param, c.sbj_name, d.g_name

-- запрос оценок для группы
(
 select 'группа','студенты', m1.sbj_name as sbj1,m1.sbj_name as sbj2,...m1.sbj_name as sbj12
 left outer join group_subject_list_view as m1 on (m1.s_id = a.s_id and m1.gs_param= 1 )
 left outer join group_subject_list_view as m2 on (m1.s_id = a.s_id and m2.gs_param= 2 )
 left outer join group_subject_list_view as m3 on (m1.s_id = a.s_id and m3.gs_param= 3 )
 ..
 left outer join mark_list_view as m12 on (m12.s_id = a.s_id and m12.gs_param= 12 )
)union all
(
 select 
    gr.g_name,
    a.s_name, 
    m1.mark_value as val1, m2.mark_value as val2,... m12.mark_value as val12
 from student_list as a
 left outer join group_list as gr on gr.g_id = a.g_id
 left outer join mark_list_view as m1 on (m1.s_id = a.s_id and m1.gs_param= 1 )
 left outer join mark_list_view as m2 on (m2.s_id = a.s_id and m2.gs_param= 2 )
 left outer join mark_list_view as m3 on (m3.s_id = a.s_id and m3.gs_param= 3 )
 ..
 left outer join mark_list_view as m12 on (m12.s_id = a.s_id and m12.gs_param= 12 )
)
разбирайтесь )
оговорюсь, это только примерные запросы
СУБД то у вас какая?
...
Рейтинг: 0 / 0
Разработка БД. Нужна помощь.
    #36903516
Кифирчик,

MySQL/ Спасибо Вам большое за потраченное время. Буду разбираться.
...
Рейтинг: 0 / 0
Разработка БД. Нужна помощь.
    #36904186
Манагерчег,


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

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

а наличие стипендии и ее размер как отразите в БД

по тории пишут что на начальном этапе проектирования БД количество таблиц надо делать максимально возможным потом постепенно их обЪединять если имеет смысл.
...
Рейтинг: 0 / 0
Разработка БД. Нужна помощь.
    #36905280
nosovавторКакое допустимое колличество полей может содержать таблица? Точнее как сильно будет менятся быстродействие ресурса при большом колличестве таблиц и полейперестаньте беспокоится за сервер... ваша БД это игрушка по сравнению с промышленными с
количеством полей в неск. тысяч.

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

а наличие стипендии и ее размер как отразите в БД

по тории пишут что на начальном этапе проектирования БД количество таблиц надо делать максимально возможным потом постепенно их обЪединять если имеет смысл.


Спасибо. Задача несколько изменилась и из-за этого получилась вот такая ситуация. Таблица 30(полей)х700(строк), в ячейки вводятся значения от 1 до 10 (процент заполнения ячеек ~50%). Таких таблиц еще 10 (но без указания ф.и.о., даты рождения, даты поступления и т.п. - эта информация будет браться из одной таблицы), так как столько месяцев будет проходить обучение. Как Вам? Есть ли смысл? Или слишком много таблиц и непродуманность?
...
Рейтинг: 0 / 0
Разработка БД. Нужна помощь.
    #36905558
nosov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторТаблица 30(полей)х700(строк), в ячейки вводятся значения от 1 до 10 (процент заполнения ячеек ~50%)дайте список всех полей первой таблицы -- без этого ничего непонятно. Название полей во всех таблицах одинаковое -- я правильно понимаю ?
Вообще если в таблицах 50% дыр это плохой признак. Ведь таблицы призваны хранить в себе данные а не дырки.
...
Рейтинг: 0 / 0
Разработка БД. Нужна помощь.
    #36905866
nosov,


В общем одной таблице:

Stud_ID / F / I / O / Group / Nation / DateIn / Birthday /

А во всех остальных даты по соотвествующим месяцам и в них проставляется кол-во пропусков за день(и таких 10 (январь, февраль, март и т.д.)):

Stud_ID / Gropup_ID /01/02/03/04/05/06/07/..../30/31/

вывод отчетов по одному студенту, по группе и.т.д

700 человек 34 группы
может быть и можно проще, но как идентифицировать месяцы, чтобы не делать 10 таблиц, хотя я думаю так было бы проще, возможно это на мой первый неопытный взгляд.
...
Рейтинг: 0 / 0
Разработка БД. Нужна помощь.
    #36905925
nosov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мысли наспех -- раб. день закончен

западные поставщики оборудования давно отказались от понятия месяц.
в контрактах они ипользуют номер недели который есть во всех бизнес календарях
сегодняшний день имеет номер (ай-ди) = 42.1 завтра 42.2 и тд.
может эту систему нумерации использовать ?
...
Рейтинг: 0 / 0
Разработка БД. Нужна помощь.
    #36905947
nosov,

Ну вариант отличный, но количество таблиц то неизмененяется? Т.е. можно изменить, но тогда полей будет неимоверно много. Или я что-то неправильно понял?
...
Рейтинг: 0 / 0
Разработка БД. Нужна помощь.
    #36906167
Кифирчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Манагерчегnosov,


В общем одной таблице:

Stud_ID / F / I / O / Group / Nation / DateIn / Birthday /

А во всех остальных даты по соотвествующим месяцам и в них проставляется кол-во пропусков за день(и таких 10 (январь, февраль, март и т.д.)):

Stud_ID / Gropup_ID /01/02/03/04/05/06/07/..../30/31/

вывод отчетов по одному студенту, по группе и.т.д

700 человек 34 группы
может быть и можно проще, но как идентифицировать месяцы, чтобы не делать 10 таблиц, хотя я думаю так было бы проще, возможно это на мой первый неопытный взгляд.
ну вы блин даете...
1. ищи какой-нить софт в котором можно графически представлять таблички и связи, и сюда скрины выкладывайте
2. какие 10 таблиц?
таблица - Stud_ID / Gropup_ID /01/02/03/04/05/06/07/..../30/31/
должна быть в виде
- stud_id int,
- group_id int
- p_date date -- дата на которую отмечаем
- sbj_id int -- код предмета который пропустил студент
а потом из этого запросами получать "отчеты", что-то типа Stud_ID / Gropup_ID /01/02/03/04/05/06/07/..../30/31/
...
Рейтинг: 0 / 0
Разработка БД. Нужна помощь.
    #36906223
Кифирчик,

Таблица должна быть как с заполненными ячейками так и с пустыми. Т.е. неважно пропустил или нет. Должна получится таблица 30х30 для месяца в котором 30 дней и количеством студентов в ней 30.
...
Рейтинг: 0 / 0
Разработка БД. Нужна помощь.
    #36906652
nosov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кифирчик- p_date date -- дата на которую отмечаем
- sbj_id int -- код предмета который пропустил студент
и кому это интересно ? если студент заболел на 2 недели, пропущенных предметов наберется много.
Зачем забивать БД ненужной инфой? (имхо)
далее :
ТС хочет организовать контроль за посещением лекций -- так я понимаю?
Раньше этим старосты групп занимались. В журнале, который им давал препод, отмечали.
...
Рейтинг: 0 / 0
Разработка БД. Нужна помощь.
    #36906738
Кифирчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТаблица должна быть как с заполненными ячейками так и с пустыми. Т.е. неважно пропустил или нет. Должна получится таблица 30х30 для месяца в котором 30 дней и количеством студентов в ней 30.
потрудитесь разобраться в примере с кучей left outer join и понять как там все работает...
на практике, с тестовыми данными
вариант как раз для подобныных отчетов, будь то по предметам или дням, или месяцам

nosovКифирчик- p_date date -- дата на которую отмечаем
- sbj_id int -- код предмета который пропустил студент
и кому это интересно ? если студент заболел на 2 недели, пропущенных предметов наберется много.
Зачем забивать БД ненужной инфой? (имхо)
далее :
ТС хочет организовать контроль за посещением лекций -- так я понимаю?
Раньше этим старосты групп занимались. В журнале, который им давал препод, отмечали.
ну да, лучшем решением будет делать по таблице на каждый отчет
а если преподаватель попросит "дни в какие этот студент пропустил мои занятия"? это "не нужная инфа"?
хотя конечно хозяин - барин
...
Рейтинг: 0 / 0
Разработка БД. Нужна помощь.
    #36906791
nosov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кифирчика если преподаватель попросит "дни в какие этот студент пропустил мои занятия"? это "не нужная инфа"?за посещением следят деканаты. Преподам до лампочки кто был кто не был
причем возможно по уважит. причине. На экзамене все проясняется. (имхо)

НЕ с прилагательными пишется вместе.
...
Рейтинг: 0 / 0
Разработка БД. Нужна помощь.
    #36908659
Кифирчик,

Просто уже даже не в этом дело,можно и так сделать. Если бы так, то намного проще. А вы допустите такой вариант что условие задачи стоит именно так и не иначе. Что бы Вы посоветовали? Только без мата, спокойно))
...
Рейтинг: 0 / 0
Разработка БД. Нужна помощь.
    #36908705
Кифирчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МанагерчегКифирчик,
Просто уже даже не в этом дело,можно и так сделать. Если бы так, то намного проще. А вы допустите такой вариант что условие задачи стоит именно так и не иначе. Что бы Вы посоветовали?
если вы про
Код: plaintext
Stud_ID / Gropup_ID / 01 / 02 / 03 / 04 / 05 / 06 / 07 /..../ 30 / 31 /
и что-то про идентификацию месяца...

если хотите именно в такой форме. то я бы посоветовал такое реализовать в Excel
без шуток, ради джойна пары таблиц смысла не вижу в СУБД, ещё и клиента к ней рисовать...
с помощью горизонтальных "группировок" выбирать либо фильтров выбирать "группы" и "курсы"
с помощью вертикальных "группировок" - года и месяцы
...
Рейтинг: 0 / 0
Разработка БД. Нужна помощь.
    #36941149
Ziki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извиняюсь что влез в чужую тему, но думаю для такого вопроса нету смысла создавать отдельную тему.
В общем хотел спросить стоит ли "злоупотреблять" функциональными зависимостями при проектировании БД, или же иногда стоит остановится и собирать данные через внешние скрипты (получил id, пошел искать по етому id данные, вместо всеми любимых join)? Насколько я знаю при каждом обновлении БД начинает проверять целостность всех зависимостей, а если их много, то ето будет не слишком хорошо, или я ошибаюсь?
...
Рейтинг: 0 / 0
Разработка БД. Нужна помощь.
    #36941208
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ziki а если их много, то ето будет не слишком хорошо, или я ошибаюсь?Вы ошибаетесь
...
Рейтинг: 0 / 0
23 сообщений из 48, страница 2 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Разработка БД. Нужна помощь.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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