powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как часто вы используете комбинированные ключи в hibernate?
25 сообщений из 79, страница 1 из 4
Как часто вы используете комбинированные ключи в hibernate?
    #39247213
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такой небольшой опрос. Был на собесе меня люди уверяли что без комби.ключей в хибере жизни нет и они везде. А ПК не нужен вовсе.

Я немножко обескуражен может просто от жизни отстал и все действительно их используют?
...
Рейтинг: 0 / 0
Как часто вы используете комбинированные ключи в hibernate?
    #39247231
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTА ПК не нужен вовсе
да ну их в баню.
...
Рейтинг: 0 / 0
Как часто вы используете комбинированные ключи в hibernate?
    #39247233
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в смысле тех, кто это говорит)
...
Рейтинг: 0 / 0
Как часто вы используете комбинированные ключи в hibernate?
    #39247238
mrWolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Согласен с Petro123.
Бред какой-то.
...
Рейтинг: 0 / 0
Как часто вы используете комбинированные ключи в hibernate?
    #39247243
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mrWolfСогласен с Petro123.
Бред какой-то.
Я того же мнения с Вами (двумя), господа. Но вот говорю ж. меня убеждали в обратном. Я конечно же не сломился, НО, в душе вот думаю а может я действительно неправ.

У меня коллега есть дб-эксперт. он на меня как на идиота посмотрел и извлек: ну да, можно. но зачем? в ряде случаев джойны это только усложняет. (А я вообще в хибере живу - там джойнов нет по-сути, а с критериями ситуация иная, да и вообще это ооп).
...
Рейтинг: 0 / 0
Как часто вы используете комбинированные ключи в hibernate?
    #39247257
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTУ меня коллега есть дб-эксперт
вот и иди на работу туда, где в штате есть админ и ДБ разработчик.
...
Рейтинг: 0 / 0
Как часто вы используете комбинированные ключи в hibernate?
    #39247260
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTЯ того же мнения с Вами (двумя), господа. Но вот говорю ж. меня убеждали в обратном. Я конечно же не сломился, НО, в душе вот думаю а может я действительно неправ.

У меня коллега есть дб-эксперт. он на меня как на идиота посмотрел и извлек: ну да, можно. но зачем? в ряде случаев джойны это только усложняет. (А я вообще в хибере живу - там джойнов нет по-сути, а с критериями ситуация иная, да и вообще это ооп).

Тут вопрос не в хибере, а в дизайне БД. Я для одного проекта решил сделать базу очень каноничной и начитался всякого. Так вот множество ресурсов в один голос рекомендовали комбинированые FK/PK ключи. Соответственно когда ассоциаций несколько PK легко становится композитным. У меня, кажется, до трех в одной таблице дошло. Деталей не помню. Это вам в соседний форум по проектированию БД. Там объяснят лучше.

Но после реализации DAL пришел к выводу, что для Hibernate таки было бы проще добавить синтетический PK во все колонки, а FK оставить только констрейнтом.

Судя по всему, ваши интервьюверы исходили из того что БД первична и спроектировали её именно так. Поэтому им так остро нужны композитные ключи в ORM. И это возникает совершенно флеймовый вопрос. Правильнее ли проектировать сущности из БД путём заковыристого маппинга, или БД из сущностей, упрощая работу с ORM?
...
Рейтинг: 0 / 0
Как часто вы используете комбинированные ключи в hibernate?
    #39247265
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT,

Кажется FK в виде PK нужен для реализации ассоциации один к одному. И вот когда у вас таким образом связано несколько таблиц, и возникает надобность в композитном ключе.
...
Рейтинг: 0 / 0
Как часто вы используете комбинированные ключи в hibernate?
    #39247268
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,
Вы собссно отчасти сказали то, что я думал - вопрос флеймовый. челы да, явно исходили из первичности дб и скуля. А я по-сути, скулевыми запросами пользуюсь только чтоб посмотреть, как отразились сущности на базе. и не более того. для меня орм первичен.
...
Рейтинг: 0 / 0
Как часто вы используете комбинированные ключи в hibernate?
    #39247278
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTдля меня орм первичен.
Ну, вот я бы над этим хорошо подумал. Потому что в каждой системе данные в БД, их целостность и сохранность это самое важное. А какой-то там ORM для CRUD это уже штука вторичная. И приносить дизайн БД в жертву ORM-у, вроде как, не правильно.
...
Рейтинг: 0 / 0
Как часто вы используете комбинированные ключи в hibernate?
    #39247317
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowiczреализации ассоциации один к одному
мне кажется само по себе ассоциация 1:1 достаточно редкий зверь.

Лично я их использовал только как "подпорки". Например в OeBS базовую таблицу менять нельзя, если нужны новые данные - добавляем еще одну таблицу с 1:1.

==

Вообще, флейм восходит к спору "нужен ли суррогатный PK" или "нужно использовать реальные данные в виде PK, суррогатный ключ зло". Поскольку AFAIK так далеко не заходят и суррогатные PK все же используют ))), то в целом, без комбинированных ключей вполне можно прожить. IMHO

Но в опросе я выбрал ответ: "а что это такое?" )))
...
Рейтинг: 0 / 0
Как часто вы используете комбинированные ключи в hibernate?
    #39247337
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczПравильнее ли проектировать сущности из БД путём заковыристого маппинга, или БД из сущностей, упрощая работу с ORM?"Ат сытуацыи завысыт" (ц) советский фильм.
Есть толковый разработчик баз данных - база будет такой, какую он сделает, нет - база будет такой, какую ОРМ предложит.
...
Рейтинг: 0 / 0
Как часто вы используете комбинированные ключи в hibernate?
    #39247344
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsevмне кажется само по себе ассоциация 1:1 достаточно редкий зверь.

Сейчас посмотрел исходник, это у меня для @ManyToOne такая ересь была. Интересно почему. Столько лет прошло, что уже и не помню.
Один к одному, действительно, исчезающе редкая фигня.


Leonid KudryavtsevВообще, флейм восходит к спору "нужен ли суррогатный PK" или "нужно использовать реальные данные в виде PK, суррогатный ключ зло". Поскольку AFAIK так далеко не заходят и суррогатные PK все же используют ))), то в целом, без комбинированных ключей вполне можно прожить. IMHO

Не-не-не. Суррогатные ключи нужны. Это не обсуждается. Натуральные ключи в качестве PK это куча головной боли.
Давайте на примере из моего старого проекта.

Есть классический "многие ко многим" для сущностей User и Meeting. Но, как это всегда бывает, связь многие ко многим требует аттрибутов, поэтому таблица связи называется Participation и является отдельной сущностью. Внимание вопрос. Чем новый бесполезный генерируемый первичный ключ Participation.id лучше чем композитный первичный ключ fk_user+fk_meeting?
Натуральными ключами тут не пахнет.
...
Рейтинг: 0 / 0
Как часто вы используете комбинированные ключи в hibernate?
    #39247353
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

где то читал что 1-1 вообще типа "бэд стайл".. и лучше наплодить еще кучу полей в первой сущности.
...
Рейтинг: 0 / 0
Как часто вы используете комбинированные ключи в hibernate?
    #39247358
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczЕсть классический "многие ко многим" для сущностей User и Meeting. Но, как это всегда бывает, связь многие ко многим требует аттрибутов, поэтому таблица связи называется Participation и является отдельной сущностью. Внимание вопрос. Чем новый бесполезный генерируемый первичный ключ Participation.id лучше чем композитный первичный ключ fk_user+fk_meeting?
Натуральными ключами тут не пахнет.
да, но мы же сущностями думаем (при условии что мы ими думаем). а там крути не крути.. будет три сущности и вантумени к партикипейшн. сущность ты так же скорее всего с пк разрисуешь для хибера. (речь ведь о хибере?)
...
Рейтинг: 0 / 0
Как часто вы используете комбинированные ключи в hibernate?
    #39247388
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTда, но мы же сущностями думаем (при условии что мы ими думаем). а там крути не крути.. будет три сущности и вантумени к партикипейшн. сущность ты так же скорее всего с пк разрисуешь для хибера. (речь ведь о хибере?)
Не вижу в чем проблема. Могу и так сущность нарисовать.

Код: java
1.
2.
3.
4.
5.
6.
@Embeddable
public class ParticipationPk implements Serializable{
    private static final long serialVersionUID = 3045927904426853291L;

    private User user;
    private Meeting meeting;
...
Рейтинг: 0 / 0
Как часто вы используете комбинированные ключи в hibernate?
    #39247409
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

хм. тоже вариант. а эту ембедабл можно притянуть к понятию скуля как "комбинированный ключ" или "вообще без ключа"?
...
Рейтинг: 0 / 0
Как часто вы используете комбинированные ключи в hibernate?
    #39247413
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTBlazkowicz,

хм. тоже вариант. а эту ембедабл можно притянуть к понятию скуля как "комбинированный ключ" или "вообще без ключа"?
Это и есть композитный ключ.
...
Рейтинг: 0 / 0
Как часто вы используете комбинированные ключи в hibernate?
    #39247418
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz...Чем новый бесполезный генерируемый первичный ключ Participation.id лучше чем композитный первичный ключ fk_user+fk_meeting?
Натуральными ключами тут не пахнет.

А чем плох еще один генерируемый первичный ключ?


1.
При связках N:N могу быть и другие поля. Например версия, дата устаревания информации.

Т.е. fk_user + fk_meetinkg в качестве PK может не хватить. Появится необходимость внести версионность ==> нужно менять структуру.

На саму эту сущность, могут ссылаться и другие сущности ))), чем сущность на связке хуже, чем любая другая. Такое конечно редко, но почему бы и нет. В конце концов, можно сделать и связку N:N между сущностями N:N....

2.
Удобство кодирования. Всегда знаем, что ID у нас всегда одно число и не паримся. Написали универсальную процедуру, например show_record - передали туда имя таблицы + ID и все.

Понятно, что в ООП можно сделать класс представляющий из себя PK и передавать уже класс. Но нафига мучиться, когда можно добавить суррогатный ключ.

Если же говорить не об ООП языках СУБД, то методика ID всегда одно число, может резко упростить кодинг. IMHO

Но в целом:
Basil A. Sidorov"Ат сытуацыи завысыт" (ц) советский фильм.
...
Рейтинг: 0 / 0
Как часто вы используете комбинированные ключи в hibernate?
    #39247420
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

надо поссмотреть как хибер их из базы дергает. Пользовал я ембедед обджектс. что то мне как то не понравилось. в контексте когда задача стоит с хитрой ветвистой выборкой или там заменой. ну, это мое сугубо личное мнение.
...
Рейтинг: 0 / 0
Как часто вы используете комбинированные ключи в hibernate?
    #39247431
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть старая, но достаточно хорошая статья по этому вопросу.
...
Рейтинг: 0 / 0
Как часто вы используете комбинированные ключи в hibernate?
    #39247438
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Локшин МаркЕсть старая, но достаточно хорошая статья по этому вопросу.
Ещё один. Натуральные ключи тут вообще не при чем. Проблема не в них. Вопрос не в них. Зачем вы их приплетаете - не понятно.
...
Рейтинг: 0 / 0
Как часто вы используете комбинированные ключи в hibernate?
    #39247509
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczНатуральные ключи тут вообще не при чем. Проблема не в них. Вопрос не в них. Зачем вы их приплетаете - не понятно.
Если комбинированный ключ везде , то вопрос тоже касается и применения натуральных ключей, и вопрос в том числе в них. Это как я себе понимаю исходный вопрос.
...
Рейтинг: 0 / 0
Как часто вы используете комбинированные ключи в hibernate?
    #39247511
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Локшин МаркЕсли комбинированный ключ везде , то вопрос тоже касается и применения натуральных ключей, и вопрос в том числе в них. Это как я себе понимаю исходный вопрос.
Хм. Ну, да. Смотря как интерпретировать "везде". Если в каждой таблице, то это ховайся. А если в каждом проекте, то у меня в практике почти так и есть.
...
Рейтинг: 0 / 0
Как часто вы используете комбинированные ключи в hibernate?
    #39247722
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в общем, судя по результатам опроса, меня собеседовали зазнавшиеся козлы.
...
Рейтинг: 0 / 0
25 сообщений из 79, страница 1 из 4
Форумы / Java [игнор отключен] [закрыт для гостей] / Как часто вы используете комбинированные ключи в hibernate?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]