AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.12.2016, 19:40   #1  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от belugin Посмотреть сообщение
"Принадлежит" концептуально одно из видов Relations
все это указатели )
но на практике программисты всевозможными путями пытаются избавиться от указателей в пользу ссылок.

казалось бы - пустая смена терминологии.

но в результате современные программные библиотеки навязывают стиль мышления "содержит", а не "указывает".
объект "содержит" другой объект
объект "принадлежит" другому объекту.
хотя в реальной памяти конечно же работают указатели.

так и relations - это указатели в области баз данных
relations требуют суррогатных ключей.
relations требуют внимания от программиста

если же перейти на уровень "принадлежит", то получим структуры типа xml/json
где никаких суррогатных ключей (указателей) не требуется.

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

примерно так.

==========================
поэтому я и считаю, что переход с абстракции relation на следующий уровень абстракции "принадлежит" сильно упрощает программирование в большинстве случаев.

но именно из-за "протекания" абстракции и вводят такое понятие как "бизнес-данные"
Старый 29.12.2016, 20:48   #2  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от mazzy Посмотреть сообщение
все это указатели )
но на практике программисты всевозможными путями пытаются избавиться от указателей в пользу ссылок

казалось бы - пустая смена терминологии
Не пустая. У ссылок нет арифметики указателей. У ключей есть такая арифметика - можно сделать recid++ или accountname + 'a'
Цитата:
Сообщение от mazzy Посмотреть сообщение

но в результате современные программные библиотеки навязывают стиль мышления "содержит", а не "указывает".
объект "содержит" другой объект
объект "принадлежит" другому объекту.
хотя в реальной памяти конечно же работают указатели
Прочитай семантику uml - "содержит" - лишь один из видов отношений.

Цитата:
Сообщение от mazzy Посмотреть сообщение
и relations - это указатели в области баз данных
relations требуют суррогатных ключей.
relations требуют внимания от программиста

Не требуют relation суррогатных ключей - открой морпхикс и простой рилейшен на любых ключах.

Это ключи а не релейшены указатели. Это они требуют внимания программиста. Проблема аккаунты в том, что нельзя в запросах использовать рилейшены аи не ключи.

Цитата:
если же перейти на уровень "принадлежит", то получим структуры типа xml/json
где никаких суррогатных ключей (указателей) не требуется.
Требуется как только надо изобразить что-то сложнее иерархии.

Последний раз редактировалось belugin; 29.12.2016 в 20:51.
Старый 29.12.2016, 22:43   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от belugin Посмотреть сообщение
Прочитай семантику uml - "содержит" - лишь один из видов отношений.
ну да, ну да... использует, наследует...
но со ссылками почти все превращается в семантику "содержит".

кроме того, мы же находимся в контексте data entity.
а в этом контексте даже навигационные свойства к внешним data entity превращаются в "принадлежит".

я говорил в этом контексте.
согласен с тем, что сформулировано коряво.
над формулировкой нужно еще подумать.

Цитата:
Сообщение от belugin Посмотреть сообщение
Не требуют relation суррогатных ключей - открой морпхикс и простой рилейшен на любых ключах.
да, ты прав. это я неточно сформулировал.

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

в аксапте это DimId, системная номерная серия и прочие
для таких ключей в номерной серии безболезненно можно использовать & вместо # - пользователи этого не заметят.

так вот, data entity полностью устраняют потребность в таких технических ключах.

Цитата:
Сообщение от belugin Посмотреть сообщение
Это ключи а не релейшены указатели. Это они требуют внимания программиста. Проблема аккаунты в том, что нельзя в запросах использовать рилейшены аи не ключи.
да-да. именно это я и имел в виду.
нужно генерить искуственные ключи, чтобы их можно было использовать как Foregn Key,
и таким образом реализовать Relation в сильно нормализованных таблицах.

да, сформулировано было коряво.
надо подумать


Цитата:
Сообщение от belugin Посмотреть сообщение
Требуется как только надо изобразить что-то сложнее иерархии.
ну да, ну да - "если объект может принадлежать нескольким объектам".
другими словами, граф, содержащий хотя бы один нетривиальный цикл. (не дерево)

Последний раз редактировалось mazzy; 29.12.2016 в 22:49.
Старый 29.12.2016, 22:54   #4  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от mazzy Посмотреть сообщение
кроме того, мы же находимся в контексте data entity.
а в этом контексте даже навигационные свойства к внешним data entity превращаются в "принадлежит".
Это как? У энтитей могут быть и другие отношения.

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

Цитата:
такие relation как правило реализуются суррогатными ключами.

в аксапте это DimId, системная номерная серия и прочие
для таких ключей в номерной серии безболезненно можно использовать & вместо # - пользователи этого не заметят.

так вот, data entity полностью устраняют потребность в таких технических relation.
Relation есть в предметной области. Entity для потребителя представляет такой relation как отсутствующий, как я понял. То есть вместо "У строки есть набор аналитик" получается "У строки есть подразделение". А сама группировка некого набора признаков в понятие "набор аналитик" исчезает.
Старый 30.12.2016, 09:05   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от belugin Посмотреть сообщение
Это как? У энтитей могут быть и другие отношения.
какие?

Цитата:
Сообщение от belugin Посмотреть сообщение
Мне это тоже непонятно. Нельзя ли увидеть пример. Как правило у таких таблиц эта связь является отражением чего-то в предметной области (например обобщения). Но при этом платформа не содержит удобного способа работы с такими связями.
я ж приводил.
DimId - очень древний пример
DirParty - не очень древний.

Цитата:
Сообщение от belugin Посмотреть сообщение
Relation есть в предметной области. Entity для потребителя представляет такой relation как отсутствующий, как я понял. То есть вместо "У строки есть набор аналитик" получается "У строки есть подразделение". А сама группировка некого набора признаков в понятие "набор аналитик" исчезает.
угу.
только стоит отметить, что "исчезает" из логических рассуждений.
исчезает из концептуальной модели.
технически все остается на месте.
Старый 30.12.2016, 09:14   #6  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от mazzy Посмотреть сообщение
какие?
Любые выразимые Relations в аксапте.

Например LendgerEntity\Relations\AccountingCurrency - RelationshipType=Association

Цитата:
я ж приводил.
DimId - очень древний пример
DirParty - не очень древний.
Аналитика есть в UI и в рассуждениях пользователя о системе. Это не чисто техническое понятие.

Адресная книга и виды ее элементов есть в UI.

Цитата:
угу.
только стоит отметить, что "исчезает" из логических рассуждений.
исчезает из концептуальной модели.
технически все остается на месте.
Вот, она есть в UI (то есть аналитика выделена в отдельную группу, и есть отдельный UI для работы с ней). Но для программиста она исчезает. Что неправильно
Старый 30.12.2016, 09:31   #7  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от belugin Посмотреть сообщение
Это как? У энтитей могут быть и другие отношения
Цитата:
Сообщение от belugin Посмотреть сообщение
Любые выразимые Relations в аксапте.
не-не. давай про энтити
я утверждаю, что relations сводятся в энтити к семантике "принадлежит".
и других семантик, кроме "принадлежит" в энтити нет.
хотя на техническом уровне relations вполне остаются.

полностью аналогично ссылкам: ссылки упрощают понимание, но на техническом уровне остаются указатели.

я так понимаю, что ты говоришь, что в энтити существуют relations-семантики.
какие типы семантик, кроме "принадлежит" существуют в энтити?

можешь сформулировать одним полным абзацем?
без отсылок к предыдущим и умолчаний?
так чтобы можно было точно понять твою мысль


Цитата:
Сообщение от belugin Посмотреть сообщение
Например LendgerEntity\Relations\AccountingCurrency - RelationshipType=Association
поясни?
как значение технического свойства влияет на уровень семантики?
с точки зрения понимания здесь будет - валюта принадлежит финансовой проводке.
разве не?

Цитата:
Сообщение от belugin Посмотреть сообщение
Аналитика есть в UI и в рассуждениях пользователя о системе. Это не чисто техническое понятие.
аналитика - да.
но не "комбинации аналитик" и не dimID.

с точки зрения рассуждений пользователя о системе - в каждой проводке указана аналитика. другими словами, аналитика принадлежит проводке.

а вот то, что это отдельная таблица - это сугубо технический аспект реализации.

Цитата:
Сообщение от belugin Посмотреть сообщение
Адресная книга и виды ее элементов есть в UI.
адресная книга - да.
но не разбивка на это безумное число таблиц, которые требуют связей между собой.

обрати внимание, как об этом думаешь:
адреса принадлежат поставке (поставка содержит адреса)
контактные лица клиента...
и т.п.

а вот внутри технической реализации будут нормализованные таблицы.

Цитата:
Сообщение от belugin Посмотреть сообщение
Вот, она есть в UI (то есть аналитика выделена в отдельную группу, и есть отдельный UI для работы с ней). Но для программиста она исчезает. Что неправильно
то, что выделено в отдельную группу - особенность реализации.
с точки зрения рассуждений пользователя особой разницы нет - будет ли аналитика в отдельной группе или не будет.

а почему неправильно?
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
emeadaxsupport: AX Performance - What information and data to collect when you want to open a support case Blog bot DAX Blogs 0 29.09.2015 15:11
Dynamics AX Sustained Engineering: Announcing an update to enable the use of SQL Server 2014 with the AX 2012 R2 CU7 version of the Data Import/Export Framework (DIXF) Blog bot DAX Blogs 0 23.03.2015 22:12
axsa: Power BI and Dynamics AX: Part 4: Data Refresh and Q&A Blog bot DAX Blogs 0 25.02.2015 20:12
emeadaxsupport: AX Performance Troubleshooting Checklist Part 2 Blog bot DAX Blogs 0 09.09.2014 16:11
axinthefield: Dynamics AX Event IDs Blog bot DAX Blogs 0 01.03.2011 22:11
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 01:03.