Добрый вечер Павел,

On Thu, 8 Feb 2024 at 19:33, Pavel Zhdanovich <openmeeti...@12winds.ru> wrote:
>
> Здравствуйте, Максим!
> (Прошу прощения, промахнулся с ответом )
> Попробую немного объяснить замысел.
> Мы хотим использовать базу данных OpenMeetings для анализа данных.
> Задача у меня возникла уже довольно давно. В 2020 году нас всех
> отправили на карантин, и я, как и другие университетские преподаватели,
> начал проводить занятия дистанционно и использовал для этого
> OpenMeetings, который у меня был развернут дома. Могу, кстати,
> похвастаться, что не провел ни одной минуты занятий со своими студентами
> в проприетарных системах видеоконференций, не считая случая, когда меня
> включили в комиссию и принудительно подключили к Zoom. 🙂

это отличные новости :)

> Руководство требовало от нас предоставлять отчеты о проведенных
> занятиях: сколько часов проведено, сколько студентов присутствовало,
> сколько пропускало и т.д. Мне было лень проводить переклички, запускать
> голосовалки и т.п., как это делали коллеги, а потом считать вручную. Я
> просто подключался к БД (Postgres) и писал SQL-запрос.
> Позже я поставил Елизавете задачу написать несколько аналогичных
> запросов, в которых уже появляется некая производная сущность "встреча"
> или "конференция". Это ситуация, когда двое или более пользователей
> одновременно находятся в одной комнате, скажем, более 1 минуты. Такие
> запросы уже пишутся с применением Window Functions (OLAP Functions в DB2
> и т.п.). Парочку из них Елизавета, думаю, сможет здесь показать. Я не
> знаю, настолько ли это всеобщая задача, чтобы предлагать включить ее в
> основной проект.

это очень даже актуальная задача :))
https://issues.apache.org/jira/browse/OPENMEETINGS-858
https://issues.apache.org/jira/browse/OPENMEETINGS-1111

мне казалось что тут можно/нужно улучшать таблицу `conference_log` :))

и я бы принял такой PR (пусть и на уровне запроса)
и прикрутил бы к нему и "веб-морду" и REST

> С другой стороны, и не такая уж узкоспецифическая.
> Скорее, это что-то в жанре "OpenMeetings SQL Cookbook". 🙂
> Так вот, для таких запросов могут понадобиться новые индексы и
> определения внешних ключей, так как оптимизаторы в СУБД используют их
> при составлении планов запросов, содержащих joins.
> А поскольку внешние ключи сейчас определяются в приложении, которое
> монопольно использует БД, мы решили посоветоваться насчет их определения
> на уровне БД при помощи DDL, так как к базе данных подключаются и другие
> приложения.

но, если честно, я пока совсем не понимаю как тут помогут те ключи,
которые упомянуты в документе :(
может можно это как-то на примере показать? :)

зы индексы можно добавить

>
> С уважением,
> Павел Жданович
>
>
> 08.02.2024 06:19, Maxim Solodovnik пишет:
> > Здравствуйте Елизавета,
> >
> > очень извиняюсь за долгий ответ (не стесняйтесь меня пинать если я
> > сильно тихий :))
> > ну и плюс ответ написать было сложно :(
> >
> > БД описывается аннотациями JPA
> > вот пример: 
> > https://github.com/apache/openmeetings/blob/master/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/User.java#L417
> >
> >
> > по пунктам:
> >   - **Блок "Первичные ключи для таблиц"**
> >
> > например таблица `om_user_right` создаётся вот такими аннотациями:
> > @ElementCollection(fetch = FetchType.EAGER)
> > @Column(name = "om_right")
> > @CollectionTable(name = "om_user_right", joinColumns =
> > @JoinColumn(name = "user_id"))
> > @Enumerated(EnumType.STRING)
> >
> > для этой таблицы не нужен Primary Key
> > индивидуальный доступ к элементам не нужен
> > элементы этой "подтаблицы" всегда достаются **все** при работе с
> > объектом пользователя
> > вставка/удаление происходят автоматически, редактирование не нужно
> >
> > остальные таблицы этого блока такие же
> >
> >
> >   - **Блок "Внешние ключи для таблиц"**
> >
> > эти ключи будет очень затруднительно добавить используя аннотации JPA
> > (похоже единственный способ - добавить @OneToOne аннотацию)
> > в результате при запросе `menu_group` (например) будет каждый раз
> > тащиться ещё и куча связанных сущностей
> >
> > то есть запросы станут очень **тяжёлыми**
> >
> > не могли бы Вы прокомментировать всё что я написал
> > и может у Вас есть какой-то анализ: какой в этом всём смысл? ну то
> > есть добавление ключей
> >
> > За
> >   - увеличит связность
> >
> > Против
> >   - замедлит базу
> >   - замедлит все запросы: добавление @OneToOne/@OneToMany добавляет
> > JOINы и кучу колонок из связанных таблиц в каждый запрос :(((
> >
> > на мой взгляд "против" сильно перевешивает ....
> >
> > On Sun, 28 Jan 2024 at 20:36, Елизавета Фролова <frolova0...@gmail.com> 
> > wrote:
> >> https://docs.google.com/document/d/12WmqQKdNSr0o_TAnCMkAm4EMx1MrrSqD50VAV9_Kk_Q/edit?usp=sharing
> >> добрый день! прикрепила ссылку для просмотра ключей, созданных в базе 
> >> данных
> >>
> >> вт, 23 янв. 2024 г. в 06:23, Maxim Solodovnik <solomax...@gmail.com>:
> >>
> >>> On Mon, 22 Jan 2024 at 23:49, Елизавета Фролова <frolova0...@gmail.com>
> >>> wrote:
> >>>> Запросы я перенесла в документ Word, да.
> >>>> Создавала ключи там, где, как мне казалось, их нет.
> >>> давайте где-нибудь выложим этот документ? :)
> >>> (на ум приходит: google docs или
> >>> https://cwiki.apache.org/confluence/display/OPENMEETINGS) :)
> >>>
> >>>> Пн, 22 янв. 2024 г. в 19:39, Maxim Solodovnik <solomax...@gmail.com>:
> >>>>
> >>>>> Доброй ночи Елизавета,
> >>>>>
> >>>>> from mobile (sorry for typos ;)
> >>>>>
> >>>>>
> >>>>> On Mon, Jan 22, 2024, 23:14 Елизавета Фролова <frolova0...@gmail.com>
> >>>>> wrote:
> >>>>>
> >>>>>> Здравствуйте!
> >>>>>> Меня зовут Елизавета, я студентка Волгоградского государственного
> >>>>>> университета.
> >>>>>> Моя бакалаврская работа связана с работой с базой данных
> >>> OpenMeetings. С
> >>>>>> вами уже связывался наш научный руководитель Жданович Павел
> >>> Борисович.
> >>>>>> Хотела бы показать Вам, что у меня уже готово.
> >>>>>> Я работала с созданием первичных и внешних ключей, где они были
> >>> нужны.
> >>>>>> Как я могу прислать свою работу?
> >>>>>>
> >>>>> Я уже писал Павлу что (вроде как) ключи в базе есть
> >>>>>
> >>>>> Сейчас они заданы в виде аннотаций JPA
> >>>>>
> >>>>> В каком виде ваша работа?
> >>>>> PR? Документ? :)
> >>>>>
> >>>
> >>>
> >>> --
> >>> Best regards,
> >>> Maxim
> >>>
> >
> >
>


-- 
Best regards,
Maxim

Ответить