Бред


Ответить в тред Ответить в тред

Check this out!
<<
Назад | Вниз | Каталог | Обновить тред | Автообновление
54 5 8

Аноним 19/03/20 Чтв 00:44:45 2158619741
image.png (145Кб, 1192x737)
1192x737
Здарова, аноны. В /pr/ бд треде никого, поэтому запрошу помощь здесь /b/ратья.
У меня есть БД "студенты сдают проект".
Основные сущности на пикрилейтед. Только вопрос вот в чём. У меня по ТЗ препод (teacher) может быть и руководителем (curator) проекта, и проверяющим (comission_member). Как рациональнее всего сделать разделение учителей на кураторов и участников комиссии? Обяз ли для этого создавать подсущности, которые будут хранить только айди? Хелп

Куратор просто чел, числящийся в проекте. Участник комиссии ставит оценку проекту: в таблицу project_mark заносится 3-5 оценок от разных челов из комиссии
Аноним 19/03/20 Чтв 00:52:56 2158623812
c4722031-cbf2-4[...].jpg (80Кб, 1451x816)
1451x816
>>215861974 (OP)
Есть два подхода по Кнуту и по Дейту.
1. Создать до поля кортежи для кураторов/принимающих.
2. Создать 2 сущности мапинга : Кураторы и Принимающие. Каждая со своим id и внешним ключом для преподавателя.
Я всегда предпочитал второй: он естественный, его проще модифицировать и он стремиться к первой нормальной форме, а абстракции не протекают.
Аноним 19/03/20 Чтв 00:55:08 2158624853
>>215862381
2ой вариант прямо как у меня на пикче?
Аноним 19/03/20 Чтв 00:56:17 2158625384
>>215862381
Upd studentid В проекте не нужен.
Аноним 19/03/20 Чтв 00:59:09 2158626645
>>215862485
Да.
Допустим завтра тебе скажут, что членом комиссии может быть другой студент, тогда все что тебе нужно будет сделать, это добавить одно поле признак в Сущность Принимающего.
Аноним 19/03/20 Чтв 00:59:43 2158626866
Аноним 19/03/20 Чтв 01:05:04 2158629237
Аноним 19/03/20 Чтв 01:05:17 2158629368
>>215861974 (OP)
у тебя есть объекты, какие-то люди. иногда можно считать, что объекты разные, несмотря на то что люди, например что преподы и ученики не пересекаются, поэтому ты берешь одинаковых в целом людей, но суешь в две таблицы.

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

бесполезные таблицы в одну колонку бесполезны, можешь ссылаться куда надо сразу. будет понятно что куратор это такой препод. а под звездочку проверяющих связка к преподам еще раз.
Аноним 19/03/20 Чтв 01:06:03 2158629749
>>215862686
В первой ссылке паттерн используется, если поля разные. Для каждого типа своя таблица.

Если поля одинаковые или почти одинаковые, то таблица одна для всех, но указывается тип в столбце. http://design-pattern.ru/patterns/single-table-inheritance.html
Аноним 19/03/20 Чтв 01:11:13 21586322610
>>215862974
При этом наследовании я в потомках храню лишь ссылку на субтаблицу? Например:
В данном случае у меня будет
teacher (int id, String name, Date hiringDate)
и два наследника у которых будет одно поле-ссылка на teacher, верно? (куратор от комиссии полями не отличается) Выходит это single table inheritance?
Аноним 19/03/20 Чтв 01:11:50 21586325411
>>215863226
>куратор от комиссии полями не отличается
lol
Аноним 19/03/20 Чтв 01:17:36 21586352212
>>215863226
STI это когда на всех одна таблица. Там поля всех сущностей плюс поле, в котором указывается тип данных.

У тебя препод может быть всеми сразу или только препод-куратор или препод-комиссия?
Аноним 19/03/20 Чтв 01:19:49 21586361113
>>215863522
он может быть только:
п-куратор, п-комиссия или п-куратор-комиссия.
Именно из-за того, что он может быть и куратором и комиссией одновременно у меня и возник вопрос, как рациональнее сделать разделение.
Аноним 19/03/20 Чтв 01:23:46 21586375914
>>215863611
Можно сделать сущность тичер и роли добавить. В методе, который ставит оценку надо будет проверять является ли препод оценщиком.
Наследование не нужно тогда.
Аноним 19/03/20 Чтв 01:26:37 21586390015
>>215861974 (OP)
а какие кейсы вообще по этой базе гонять будут? ну т.е. ты сейчас городишь какую-то статику, а транзакции какие нужны?
Аноним 19/03/20 Чтв 01:27:34 21586395216
>>215861974 (OP)
ну т.е. понятно что никакие, и это упражнение на рисование стрелочек, но вдруг в задании чото есть об этом. или может аналитика какая нужна, какие вообще запросы должны работать по этой схеме
Аноним 19/03/20 Чтв 01:28:31 21586400217
>>215863759
Я так раньше подумал, сразу впихнуть в тичера два поля булевых: является ли куратором и является ли комиссией.
Аноним 19/03/20 Чтв 01:30:28 21586409818
>>215863900
Я в рамках курсача веб приложуху делаю на джаве. Транзакции никакие не нужны. Мне просто нужно сделать простенькую бд и подгружать данные запросами. По сути проект состоит в том, чтобы сделать графический интерфейс для работы с бд.
Аноним 19/03/20 Чтв 01:30:45 21586411719
Аноним 19/03/20 Чтв 01:31:54 21586417520
>>215864002
точнее как, поебень с правом на жизнь, на такой поебени видел более чем достаточно, но без необходимости не надо этим заниматься. будет у тебя человек в двух комиссиях, и что.
Аноним 19/03/20 Чтв 01:33:09 21586421721
>>215864175
или куратором в двух проектах. положил FK как в букваре и норм.
Аноним 19/03/20 Чтв 01:33:46 21586424322
>>215861974 (OP)
Короче, коль у тебя есть люди то запиливай модель "Физическое лицо", суть в том что студент может завтра стать преподом а препод студентом. А так у тебя будет одно ФЛ а дальше уже просто внешние ключи у модели препод, студент, небо, аллах.
Аноним 19/03/20 Чтв 01:36:33 21586436423
>>215864243
Т.е. сделать одну таблицу с людьми выделив общие свойства и создать таблицы наследники в лице студента, неба и аллаха?
Аноним 19/03/20 Чтв 01:37:00 21586438424
>>215861974 (OP)
а почему в студенте один проект? ты пока учишься у тебя до ебеней проектов. пусть их история по годам в project лежит, сделай связь с проектами m-n
Аноним 19/03/20 Чтв 01:37:58 21586443025
>>215864384
Это дипломный проект. По тз 1:1 студент и проект
Аноним 19/03/20 Чтв 01:38:37 21586446126
Аноним 19/03/20 Чтв 01:38:59 21586448327
>>215864243
Но вопрос в другом:
>препод (teacher) может быть и руководителем (curator) проекта, и проверяющим (comission_member). Как рациональнее всего сделать разделение учителей на кураторов и участников комиссии?
Аноним 19/03/20 Чтв 01:39:42 21586451328
>>215861974 (OP)
а куратор у проекта или у студента? они конечно 1-1, но все равно интересно.
Аноним 19/03/20 Чтв 01:41:27 21586460029
Аноним 19/03/20 Чтв 01:42:00 21586462830
Аноним 19/03/20 Чтв 01:44:46 21586475331
Аноним 19/03/20 Чтв 01:45:25 21586477732
>>215864002
Надо сделать таблицу ролей и связать с тичером многие ко многим. Когда тичер будет что-то делать, то проверять есть ли у него группа для этого действия.
Аноним 19/03/20 Чтв 01:45:26 21586477933
Аноним 19/03/20 Чтв 01:46:13 21586481434
>>215864483
Так делаешь many to many где будут внешние ключи на ФЛ, группу, небо, аллаха.
Аноним 19/03/20 Чтв 01:47:00 21586484135
>>215864483
взять вариант на оппике, выкинуть прокситаблицы левые, и будет норм.
Аноним 19/03/20 Чтв 01:47:59 21586488236
>>215864841
Что такое прокситаблицы?
Аноним 19/03/20 Чтв 01:49:35 21586494437
>>215864779
Кстати идея с моделью ФЛ показала себя на практике. Делал для школы бдшку и спустя пару лет один из учеников внезапно стал родителем и вот в таблице ФЛ одна запись и в связке ученик и родитель по одной.
Аноним 19/03/20 Чтв 01:52:37 21586507138
>>215864944
Я уже понял, что это хорошая модель. В ООП паттерн фабрика точно такую же схему описывает
Аноним 19/03/20 Чтв 01:56:16 21586522439
laba1.png (43Кб, 1171x447)
1171x447
Аноним 19/03/20 Чтв 01:57:28 21586526840
laba1.png (43Кб, 1171x447)
1171x447
Аноним 19/03/20 Чтв 02:01:07 21586542341
>>215861974 (OP)
еще можно про lifetime подумать, в каком порядке что появляется, что без чего может быть.
есть студенты без проекта, есть проекты без студента, есть проекты без оценки. у оценки всё обязательное, проект без препода -хз. остальное вообще говоря тоже хз бывает по заданию или нет.
Аноним 19/03/20 Чтв 02:01:50 21586545242
студент без группы наверное нет, группа без студентов вообще говоря да.
Аноним 19/03/20 Чтв 02:03:34 21586552243
>>215865423
>>215865452
обычно такие вещи либо есть в тз, либо если его писать мудила, то надо уточнять у заказчика.
опять же, обычно на практике это по барабану, но если нужна картинка с правильными стрелочками, то стрелочки должны быть правильные.
Аноним 19/03/20 Чтв 02:04:44 21586556844
Аноним 19/03/20 Чтв 02:07:05 21586567745
>>215865522
Это же проект уровня студента 2го курса универа. У меня тз из темы и трёх пунктов-ограничений, ёпту. У нас преподы не особо-то и компетентны. Не у кого помощи спросить. Мой препод вообще предлагал ещё средний бал каждого проекта хранить в таблице. :/
Аноним 19/03/20 Чтв 02:08:51 21586575346
>>215865677
если бы у него было миллион проектов в день, то может быть это начало иметь смысл.
Аноним 19/03/20 Чтв 02:15:27 21586599647
>>215865753
также стоит отметить, что у если студенты-проекты 1-1, то средний балл про проекту равен одной оценке за него.
Аноним 19/03/20 Чтв 02:19:27 21586613848
>>215865996
Каждый проект оценивает 3-5 челов комиссии, оттуда и средний балл
Аноним 19/03/20 Чтв 02:20:55 21586618149
>>215866138
а комиссия как сущность не нужна?
Аноним 19/03/20 Чтв 02:23:54 21586628750
>>215866181
Член комиссии - это роль, как и куратор.
Просто у меня к 1 проекту будет 3 записи от разных челов комиссии с оценкой.
Аноним 19/03/20 Чтв 02:32:44 21586658251
>>215866287
ну, у тебя получается что некие абстрактные члены комиссий прилетают из вакуума и оставляют оценки в журнале. обычно это не так работает. есть каферда, там есть преподы, из них собирается сборище на студентов от преподов этой же кафедры и они друг другу ставят оценки. видимо тебе ничего такого делать не надо, и хорошо.
Аноним 19/03/20 Чтв 02:35:24 21586667752
Вы называете объект сущностью?
Аноним 19/03/20 Чтв 02:39:49 21586682253
>>215866677
А-а, entity object называете сущностью. Охотники за привидениями
Аноним 19/03/20 Чтв 02:43:49 21586694854
>>215866582
Вот, если интересно, задание:
Тема: сдача студентами дипломных проектов.

Объекты: студенты, группы, дипломные проекты, руководители, члены ГЭК.

Для моделирования задачи необходимо хранить следующую информацию:

ФИО студента
№ группы
№ зачетной книжки
Тема дипломного проекта
Итоговая оценка за дипломный проект
ФИО руководителя дипломного проекта
Оценки всех членов ГЭК за дипломный проект

Дополнительные условия:

один студент защищает только одну дипломную работу;
каждую дипломную работу оценивает не менее 3 членов ГЭК;
член ГЭК может одновременно быть руководителем дипломного проекта.

Аноним 19/03/20 Чтв 03:00:44 21586742855
laba1.png (63Кб, 1281x507)
1281x507
>>215866948
>члены ГЭК
вообще я бы
1. ввел некую ебань под названием коммисия, напихал в них преподов
2. сделал штуку под названием "сдача проекта" и под эту сдачу насовал детьми оценки, от членов комиссии.

и дальше эта схема должна коммутировать, в том плане что тебе оценку ставил чувак, который был в комиссии на сдаче
Настройки X
Ответить в тред X
15000 [S]
Макс объем: 20Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
X
Ваш шидевор X
Стикеры X
Избранное / Топ тредов