On Thu, 8 Feb 2024 at 21:39, Елизавета Фролова <frolova0...@gmail.com> wrote:
>
> https://docs.google.com/document/d/1OADjPFaw6SCoqmK6mNgoZRiStGPwjPReqG2YUkciYSk/edit?usp=sharing
>
> Прикрепляю Вам ссылку на эти запросы. Немного описала, как именно их можно
> использовать и их полезность.

ага
помнится я крепко задумался на тему: что будет если
 - человека выкинуло и/или он/она перезаходил в комнату много раз
 - необходимо как-то "закрывать" записи в этой таблице (если сервер
перегрузился почему-то)

на тему сущности "видеоконференция" можно завести дополнительные
события (типы событий)
и сделать лог интереснее :))

>
> чт, 8 февр. 2024 г. в 17:22, Maxim Solodovnik <solomax...@gmail.com>:
>
> > Добрый вечер Павел,
> >
> > 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
> >



--
Best regards,
Maxim

Ответить