27.04.2011, 02:15 | #1 |
Участник
|
axdaily: Table inheritance
Источник: http://axdaily.blogspot.com/2011/04/...heritance.html
============== AX 2012 supports table inheritance. Table inheritance is controlled by the following properties:
There is also client support for table hierarchies. Whenever a table that has derived tables is added on a form as a datasource, all its children are added under the derived datasources node. Fields from derived datasources can be bound to form controls and derived datasources can be used in form query construction, e.g. other datasources can be joined to derived ones. Whenever a “New record” action is invoked on a form control that is bound to an abstract table, the following dialog will be presented to user where it is possible to select the concrete type of the record being created. Источник: http://axdaily.blogspot.com/2011/04/...heritance.html
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору. |
|
28.04.2011, 12:27 | #2 |
Участник
|
Интересно, что никто ничего про это изменение не говорит.
Что думаете, полезно или как? |
|
28.04.2011, 12:31 | #3 |
Участник
|
пока кажется что полезно.
но непонятно. такое ощущение, что как-то вывернуто наизнанку хотя возможно, чего то еще не понимаю. |
|
28.04.2011, 12:45 | #4 |
Участник
|
Вообще-то в разных СУБД (ну например PostgreSQL или Оракла) наследование таблиц существует достаточно давно!
Правда, интересуясь на профильных форумах, я не увидел ни одного человека, кто-бы это использовал в реальных проектах. Может дело в привычке разработчиков, а может в кривизне реализации - не знаю. Как здесь применять - я пока не знаю - может все ограничится уменьшением кол-ва дублированного кода.
__________________
Axapta 3.0 sp - хз какой, kr2 |
|
28.04.2011, 12:46 | #5 |
Moderator
|
А те кто это уже видел - могут сказать как оно внутри устроено ? В родительской таблице есть поле с типом ? Или считается что джойна на дочернюю таблицу достаточно ?
Кроме того - не очень понятно что будет если я только дочернюю таблицу в на форму помещу... |
|
28.04.2011, 13:04 | #6 |
Участник
|
Цитата:
Зависит от того, какие поля вытащишь показывать и как настроишь. Если вытащишь из базовой таблицы в том числе, она автоматически приджойнится к дочерней. Если не вытащишь, то только из дочерней будут выбираться поля. |
|
28.04.2011, 13:44 | #7 |
Administrator
|
Цитата:
Посмотрим по жизни как все это будет работать в плане быстродействия. Пока придерживаюсь мнения
__________________
Возможно сделать все. Вопрос времени |
|
28.04.2011, 16:17 | #8 |
Участник
|
Цитата:
А интересно лично мне, потому что мне фича нравится, но чувствую, что где-то есть подвох (не учитывая перформанс) |
|
28.04.2011, 16:25 | #9 |
Moderator
|
Цитата:
Кроме того - я не понял как там решили вопрос с тремя уровнями наследования. Вот скажем есть у меня таблица "Клиенты", потом "Стратегические клиенты", потом "Стратегические клиенты на поддержке". Могу я таблицу Клиенты на форму поместить ? И если у меня два уровня наследования, меня система два раза спрашивать будет ? Кроме того непонятно как синтаксически делается запрос по дочерней таблице. Должен ли я джойн к супер-таблице добавлять или синтаксически считается что дочерняя таблица содержит все поля родительской ? (И ядро это в join превращает). Кроме того, интересно насколько данную фичу использовали при проектировании структур данных. А то интерфейсы поддержали еще в версии 3.0, поминится, а на практике они используются местах в 5-7... P.S. Кстати надо бы уж тогда выработать какую-то терминологию для наследования таблиц, а то термины 'родительский' и 'дочерний' в реляционной терминологии уже используются, причем для отношений в нормальных формах, а не для наследования Последний раз редактировалось fed; 28.04.2011 в 16:30. |
|
28.04.2011, 17:15 | #10 |
Участник
|
Цитата:
Сообщение от fed
Меня удивила возможность помещать базовую таблицу на форму и на лету указывать тип создаваемой записи. Может это и полезно иногда, но почему-то мне странным кажется. Как-то я привык к тому что присутствует жёсткий джойн от одной листовой таблицы до корневой.
Кроме того - я не понял как там решили вопрос с тремя уровнями наследования. Вот скажем есть у меня таблица "Клиенты", потом "Стратегические клиенты", потом "Стратегические клиенты на поддержке". Могу я таблицу Клиенты на форму поместить ? И если у меня два уровня наследования, меня система два раза спрашивать будет ? Кроме того непонятно как синтаксически делается запрос по дочерней таблице. Должен ли я джойн к супер-таблице добавлять или синтаксически считается что дочерняя таблица содержит все поля родительской ? (И ядро это в join превращает). Кроме того, интересно насколько данную фичу использовали при проектировании структур данных. А то интерфейсы поддержали еще в версии 3.0, поминится, а на практике они используются местах в 5-7... P.S. Кстати надо бы уж тогда выработать какую-то терминологию для наследования таблиц, а то термины 'родительский' и 'дочерний' в реляционной терминологии уже используются, причем для отношений в нормальных формах, а не для наследования Да, будет спрашивать два раза, насколько я помню. Поэтому для products, где такая ситуация присутствует, сделали отдельный диалог кастомный. Синтаксически все поля базовых таблиц доступны с дочерней в коде. Ядро потом само разберет, что приджойнить. Но и явно джойтить тоже можно, вроде без проблем. Используется в довольно большом кол-ве новых (2012) таблиц. Адреса, Party, Продукты, т.д. |
|
29.04.2011, 01:09 | #11 |
Участник
|
не, два раза показываться не будет. в примере как раз такая иерархия (Product Variants (EcoResDistinctProductVariant) подтип Products (EcoResDistinctProduct)).
с запросами по дочерним таблицам все просто. никаких джойнов не нужно руками писать (ни на формах ни в коде) ядро само все сделает. |
|
Теги |
ax2012, inheritance, table inheritance |
|
|