Здарова, аноны. В /pr/ бд треде никого, поэтому запрошу помощь здесь /b/ратья. У меня есть БД "студенты сдают проект". Основные сущности на пикрилейтед. Только вопрос вот в чём. У меня по ТЗ препод (teacher) может быть и руководителем (curator) проекта, и проверяющим (comission_member). Как рациональнее всего сделать разделение учителей на кураторов и участников комиссии? Обяз ли для этого создавать подсущности, которые будут хранить только айди? Хелп
Куратор просто чел, числящийся в проекте. Участник комиссии ставит оценку проекту: в таблицу project_mark заносится 3-5 оценок от разных челов из комиссии
>>215861974 (OP) Есть два подхода по Кнуту и по Дейту. 1. Создать до поля кортежи для кураторов/принимающих. 2. Создать 2 сущности мапинга : Кураторы и Принимающие. Каждая со своим id и внешним ключом для преподавателя. Я всегда предпочитал второй: он естественный, его проще модифицировать и он стремиться к первой нормальной форме, а абстракции не протекают.
>>215862485 Да. Допустим завтра тебе скажут, что членом комиссии может быть другой студент, тогда все что тебе нужно будет сделать, это добавить одно поле признак в Сущность Принимающего.
>>215861974 (OP) у тебя есть объекты, какие-то люди. иногда можно считать, что объекты разные, несмотря на то что люди, например что преподы и ученики не пересекаются, поэтому ты берешь одинаковых в целом людей, но суешь в две таблицы.
а еще у тебя есть отношения прямо вот в том смысле, про подмножество декартового произведения, и вот некоторые люди у тебя бывают в некоторых отношениях. и под эти отношения ты заводишь отдельные таблицы, и тебе норм.
бесполезные таблицы в одну колонку бесполезны, можешь ссылаться куда надо сразу. будет понятно что куратор это такой препод. а под звездочку проверяющих связка к преподам еще раз.
>>215862974 При этом наследовании я в потомках храню лишь ссылку на субтаблицу? Например: В данном случае у меня будет teacher (int id, String name, Date hiringDate) и два наследника у которых будет одно поле-ссылка на teacher, верно? (куратор от комиссии полями не отличается) Выходит это single table inheritance?
>>215863522 он может быть только: п-куратор, п-комиссия или п-куратор-комиссия. Именно из-за того, что он может быть и куратором и комиссией одновременно у меня и возник вопрос, как рациональнее сделать разделение.
>>215863611 Можно сделать сущность тичер и роли добавить. В методе, который ставит оценку надо будет проверять является ли препод оценщиком. Наследование не нужно тогда.
>>215861974 (OP) ну т.е. понятно что никакие, и это упражнение на рисование стрелочек, но вдруг в задании чото есть об этом. или может аналитика какая нужна, какие вообще запросы должны работать по этой схеме
>>215863900 Я в рамках курсача веб приложуху делаю на джаве. Транзакции никакие не нужны. Мне просто нужно сделать простенькую бд и подгружать данные запросами. По сути проект состоит в том, чтобы сделать графический интерфейс для работы с бд.
>>215864002 точнее как, поебень с правом на жизнь, на такой поебени видел более чем достаточно, но без необходимости не надо этим заниматься. будет у тебя человек в двух комиссиях, и что.
>>215861974 (OP) Короче, коль у тебя есть люди то запиливай модель "Физическое лицо", суть в том что студент может завтра стать преподом а препод студентом. А так у тебя будет одно ФЛ а дальше уже просто внешние ключи у модели препод, студент, небо, аллах.
>>215861974 (OP) а почему в студенте один проект? ты пока учишься у тебя до ебеней проектов. пусть их история по годам в project лежит, сделай связь с проектами m-n
>>215864243 Но вопрос в другом: >препод (teacher) может быть и руководителем (curator) проекта, и проверяющим (comission_member). Как рациональнее всего сделать разделение учителей на кураторов и участников комиссии?
>>215864002 Надо сделать таблицу ролей и связать с тичером многие ко многим. Когда тичер будет что-то делать, то проверять есть ли у него группа для этого действия.
>>215864779 Кстати идея с моделью ФЛ показала себя на практике. Делал для школы бдшку и спустя пару лет один из учеников внезапно стал родителем и вот в таблице ФЛ одна запись и в связке ученик и родитель по одной.
>>215861974 (OP) еще можно про lifetime подумать, в каком порядке что появляется, что без чего может быть. есть студенты без проекта, есть проекты без студента, есть проекты без оценки. у оценки всё обязательное, проект без препода -хз. остальное вообще говоря тоже хз бывает по заданию или нет.
>>215865423 >>215865452 обычно такие вещи либо есть в тз, либо если его писать мудила, то надо уточнять у заказчика. опять же, обычно на практике это по барабану, но если нужна картинка с правильными стрелочками, то стрелочки должны быть правильные.
>>215865522 Это же проект уровня студента 2го курса универа. У меня тз из темы и трёх пунктов-ограничений, ёпту. У нас преподы не особо-то и компетентны. Не у кого помощи спросить. Мой препод вообще предлагал ещё средний бал каждого проекта хранить в таблице. :/
>>215866287 ну, у тебя получается что некие абстрактные члены комиссий прилетают из вакуума и оставляют оценки в журнале. обычно это не так работает. есть каферда, там есть преподы, из них собирается сборище на студентов от преподов этой же кафедры и они друг другу ставят оценки. видимо тебе ничего такого делать не надо, и хорошо.
>>215866582 Вот, если интересно, задание: Тема: сдача студентами дипломных проектов.
Объекты: студенты, группы, дипломные проекты, руководители, члены ГЭК.
Для моделирования задачи необходимо хранить следующую информацию:
ФИО студента № группы № зачетной книжки Тема дипломного проекта Итоговая оценка за дипломный проект ФИО руководителя дипломного проекта Оценки всех членов ГЭК за дипломный проект
Дополнительные условия:
один студент защищает только одну дипломную работу; каждую дипломную работу оценивает не менее 3 членов ГЭК; член ГЭК может одновременно быть руководителем дипломного проекта.
>>215866948 >члены ГЭК вообще я бы 1. ввел некую ебань под названием коммисия, напихал в них преподов 2. сделал штуку под названием "сдача проекта" и под эту сдачу насовал детьми оценки, от членов комиссии.
и дальше эта схема должна коммутировать, в том плане что тебе оценку ставил чувак, который был в комиссии на сдаче
У меня есть БД "студенты сдают проект".
Основные сущности на пикрилейтед. Только вопрос вот в чём. У меня по ТЗ препод (teacher) может быть и руководителем (curator) проекта, и проверяющим (comission_member). Как рациональнее всего сделать разделение учителей на кураторов и участников комиссии? Обяз ли для этого создавать подсущности, которые будут хранить только айди? Хелп
Куратор просто чел, числящийся в проекте. Участник комиссии ставит оценку проекту: в таблицу project_mark заносится 3-5 оценок от разных челов из комиссии