Здравствуйте Елизавета,

очень извиняюсь за долгий ответ (не стесняйтесь меня пинать если я
сильно тихий :))
ну и плюс ответ написать было сложно :(

БД описывается аннотациями 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

Ответить