Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3 4   вперед  Ctrl      все
 Фаулер. Concrete table inheritance  [new]
questioner
Member

Откуда:
Сообщений: 1865
В Concrete table inheritance(в хибере это НЕ дефолт) для каждого конкретного класса иерархии создаётся таблица БД со всем полями класса и всех его предков.

Фаулер пишет, что при таком раскладе во всех таблицах должны использоваться идентификаторы уникальные в рамках иерархии

Теперь про проблему:

Есть иерархия наследования:


игрок <== футболист
-------- <== баскетболист

В итоге в базе 2 таблицы футболист и баскетболист

Затем в коде мы делаем объект благотворительная акция, куда цепляем список игроков(причем один игрок может участвовать в нескольких благотворительных акциях).

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

Я из текста вообще не понял когда такой подход будет хорош.
9 окт 19, 13:30    [21990356]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Concrete table inheritance  [new]
questioner
Member

Откуда:
Сообщений: 1865
также вызывает вопросы следузщее утверждение:


Если поля классов домена перемещаются в суперклассы или производные классы, придётся вносить изменения в определения таблиц. Эти изменения будут не так часты, как в случае наследования с таблицами для каждого класса, однако их нельзя просто игнорировать, как было в случае с наследованием с одной таблицей.

спортcмен(Абстрактный класс)<==== конькобежец(конкретный класс)<===== хоккеист(конкретный класс)


итого имеем 2 таблицы для конькобежцев и для хоккеистов

1. переместили поле из спортсмена в конькобежца

Вроде никаких изменений в таблице не надо делать

2. переместили поле из конькобежца в хоккеиста

таблица хоккеиста остаётся неизменной

из конькобежца вырезаем поле

3. переместили поле из хоккеиста в конькобежца

добавляем поле в конькобежца

таблица хоккеиста остаётся неизменной

4. переместили поле из конькобежца в спортcмена

ничего не делаем

То есть что-то меняется только для конкретных классов, которые не являются листьями. Правильно я понял?
9 окт 19, 13:41    [21990377]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Concrete table inheritance  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
questioner
Теперь про проблему:
то есть для умолчания в хибере проблемы не будет?
Почему не рассмотрели?
9 окт 19, 13:46    [21990386]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Concrete table inheritance  [new]
questioner
Member

Откуда:
Сообщений: 1865
PetroNotC Sharp
questioner
Теперь про проблему:
то есть для умолчания в хибере проблемы не будет?
Почему не рассмотрели?


По умолчанию не будет. Что рассмотреть? вообще вопрос не по существу.
9 окт 19, 13:47    [21990387]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Concrete table inheritance  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
questioner
В Concrete table inheritance(в хибере это НЕ дефолт)
это плохой метод.
Зачем его обсуждать?
9 окт 19, 13:49    [21990389]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Concrete table inheritance  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
questioner
Я из текста вообще не понял когда такой подход будет хорош.
вы с фаулером втыкаете наследование в рсубд.
Это вообще не есть хорошо. Поэтому и компромиссы и костыли и куча вопросов.
9 окт 19, 13:56    [21990405]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Concrete table inheritance  [new]
questioner
Member

Откуда:
Сообщений: 1865
PetroNotC Sharp
questioner
Я из текста вообще не понял когда такой подход будет хорош.
вы с фаулером втыкаете наследование в рсубд.
Это вообще не есть хорошо. Поэтому и компромиссы и костыли и куча вопросов.


Вопросы предполагают ответы. В данном топике обсуждаются конкретные вопросы.
9 окт 19, 14:02    [21990414]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Concrete table inheritance  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
questioner,
Правильно я понял, что мне нужно обосновать выключение основного режима хибера?
При котором он эффективнее работает?
9 окт 19, 14:06    [21990420]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Concrete table inheritance  [new]
questioner
Member

Откуда:
Сообщений: 1865
PetroNotC Sharp
questioner
В Concrete table inheritance(в хибере это НЕ дефолт)
это плохой метод.
Зачем его обсуждать?


Фаулер такого не написал. Из текста мне тоже показалось, что это не лучшее решение, но сорян, где ты, где я и где Фаулер.
9 окт 19, 14:07    [21990421]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Concrete table inheritance  [new]
questioner
Member

Откуда:
Сообщений: 1865
PetroNotC Sharp
questioner,
Правильно я понял, что мне нужно обосновать выключение основного режима хибера?
При котором он эффективнее работает?


Не надо иметь семи пядей во лбу, чтобы понять, что эффективность зависит от решаемой задачи и в каких-то случаях, по всей видимости, она должна иметь преимущества.
9 окт 19, 14:08    [21990424]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Concrete table inheritance  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
questioner,
Это как в школе вопрос:
- На чем поедешь?
- На машине!
- Машина сломалась.
- Тогда пешком!
- Ног нету....
- Тогда поползу!
....
))))
9 окт 19, 14:12    [21990429]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Concrete table inheritance  [new]
questioner
Member

Откуда:
Сообщений: 1865
PetroNotC Sharp
questioner,
Это как в школе вопрос:
- На чем поедешь?
- На машине!
- Машина сломалась.
- Тогда пешком!
- Ног нету....
- Тогда поползу!
....
))))


Твоё умение что-то брякнуть, даже если сказать нечего - поражает.
9 окт 19, 14:14    [21990433]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Concrete table inheritance  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
questioner
Твоё умение что-то брякнуть, даже если сказать нечего - поражает.

Вот у тебя - смотрю в книгу, вижу фигу лучше?
9 окт 19, 14:22    [21990447]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Concrete table inheritance  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
questioner,
Вроде mayton тебе говорил - не относиль к словам фаулера слишком серьезно.
9 окт 19, 14:24    [21990451]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Concrete table inheritance  [new]
questioner
Member

Откуда:
Сообщений: 1865
PetroNotC Sharp
questioner
Твоё умение что-то брякнуть, даже если сказать нечего - поражает.

Вот у тебя - смотрю в книгу, вижу фигу лучше?


Так я и пришёл с посылом, что вот я не понимаю - объясните, пожалуйста те, кто может. Почему отвечает только тот, кто не может - не поддаётся объяснению.
9 окт 19, 14:38    [21990470]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Concrete table inheritance  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
questioner,
Мне больше импонирует чел с цветочным магазином. Он без лени трудится.
Ты же жди ответов. Результат равен нулю.
Удачи!
9 окт 19, 14:55    [21990504]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Concrete table inheritance  [new]
Kachalov
Member

Откуда: Москва
Сообщений: 5671
questioner
Есть иерархия наследования:

игрок <== футболист
-------- <== баскетболист

В итоге в базе 2 таблицы футболист и баскетболист

- Вам надо три таблицы, еще и родительскую "игрок"

Затем в коде мы делаем объект благотворительная акция, куда цепляем список игроков(причем один игрок может участвовать в нескольких благотворительных акциях).

questioner
А какие-то ещё есть варианты?

- цепляйте связь с "благотворительными акциями" к родительской таблице "игрок"
9 окт 19, 15:41    [21990590]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Concrete table inheritance  [new]
questioner
Member

Откуда:
Сообщений: 1865
Kachalov
- Вам надо три таблицы, еще и родительскую "игрок"


Не надо по этому типовому решению. тут только для конкретных классов требуется таблица
9 окт 19, 15:50    [21990597]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Concrete table inheritance  [new]
Kachalov
Member

Откуда: Москва
Сообщений: 5671
questioner
Не надо по этому типовому решению. тут только для конкретных классов требуется таблица

- пожалуйста, Вам видней
9 окт 19, 15:57    [21990611]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Concrete table inheritance  [new]
questioner
Member

Откуда:
Сообщений: 1865
Kachalov
questioner
Не надо по этому типовому решению. тут только для конкретных классов требуется таблица

- пожалуйста, Вам видней


В этом и суть вопроса просто)
9 окт 19, 16:06    [21990619]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Concrete table inheritance  [new]
mayton
Member

Откуда: loopback
Сообщений: 42452
questioner, давай приводи полную цитату Фаулера. А то получается как в анекдоте
про Рабиновича который Шаляпина напел.
9 окт 19, 17:18    [21990707]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Concrete table inheritance  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
questioner
игрок <== футболист
-------- <== баскетболист

В итоге в базе 2 таблицы футболист и баскетболист

И схему пусть рисует нормально.
9 окт 19, 19:07    [21990773]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Concrete table inheritance  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2543
непонятна суть проблемы афтара
есть супер класс
от него наследуются две сущности
потом табла с мероприятием куда подятигиваются наследники супер класса
в чем у афатара проблема?
9 окт 19, 20:04    [21990822]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Concrete table inheritance  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2543
Kachalov
questioner
Есть иерархия наследования:

игрок <== футболист
-------- <== баскетболист

В итоге в базе 2 таблицы футболист и баскетболист

- Вам надо три таблицы, еще и родительскую "игрок"

Затем в коде мы делаем объект благотворительная акция, куда цепляем список игроков(причем один игрок может участвовать в нескольких благотворительных акциях).

questioner
А какие-то ещё есть варианты?

- цепляйте связь с "благотворительными акциями" к родительской таблице "игрок"

дядь ты бы изучил для начала hibernate inheritance
если делать три таблицы,тогда нахрен вообще это свойство хибера))

суть этого действа в том,что ты определяешь в супер классе общие поля,а в налслдниках частные и при создании новой сущности автоматически производится запись в той табле,к которой принадлежит сущность
9 окт 19, 20:10    [21990827]     Ответить | Цитировать Сообщить модератору
 Re: Фаулер. Concrete table inheritance  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
asv79
в чем у афатара проблема?
в анализе двух вариантов наследования.
Хотя ТС сопротивляется, но анализ нельзя делать не сравнивая одно с другим.
9 окт 19, 20:24    [21990836]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3 4   вперед  Ctrl      все
Все форумы / Java Ответить