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

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

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

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

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

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

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

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

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

==

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

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

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


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

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

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

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

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

хм. тоже вариант. а эту ембедабл можно притянуть к понятию скуля как "комбинированный ключ" или "вообще без ключа"?
Это и есть композитный ключ.
...
Рейтинг: 0 / 0
31.05.2016, 16:53
    #39247418
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как часто вы используете комбинированные ключи в hibernate?
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
31.05.2016, 16:53
    #39247420
andreykaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как часто вы используете комбинированные ключи в hibernate?
Blazkowicz,

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


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