|
![]() |
#1 |
Участник
|
все это указатели )
но на практике программисты всевозможными путями пытаются избавиться от указателей в пользу ссылок. казалось бы - пустая смена терминологии. но в результате современные программные библиотеки навязывают стиль мышления "содержит", а не "указывает". объект "содержит" другой объект объект "принадлежит" другому объекту. хотя в реальной памяти конечно же работают указатели. так и relations - это указатели в области баз данных relations требуют суррогатных ключей. relations требуют внимания от программиста если же перейти на уровень "принадлежит", то получим структуры типа xml/json где никаких суррогатных ключей (указателей) не требуется. но зато такая абстракция "протекает", если объект может принадлежать нескольким объектам. что в программировании ссылок, что в программировании баз данных. примерно так. ========================== поэтому я и считаю, что переход с абстракции relation на следующий уровень абстракции "принадлежит" сильно упрощает программирование в большинстве случаев. но именно из-за "протекания" абстракции и вводят такое понятие как "бизнес-данные" |
|
![]() |
#2 |
Участник
|
Цитата:
Цитата:
Цитата:
Не требуют relation суррогатных ключей - открой морпхикс и простой рилейшен на любых ключах. Это ключи а не релейшены указатели. Это они требуют внимания программиста. Проблема аккаунты в том, что нельзя в запросах использовать рилейшены аи не ключи. Цитата:
если же перейти на уровень "принадлежит", то получим структуры типа xml/json
где никаких суррогатных ключей (указателей) не требуется. Последний раз редактировалось belugin; 29.12.2016 в 20:51. |
|
![]() |
#3 |
Участник
|
ну да, ну да... использует, наследует...
но со ссылками почти все превращается в семантику "содержит". кроме того, мы же находимся в контексте data entity. а в этом контексте даже навигационные свойства к внешним data entity превращаются в "принадлежит". я говорил в этом контексте. согласен с тем, что сформулировано коряво. над формулировкой нужно еще подумать. Цитата:
я говорил не о любых relation, а о сильно нормализованных таблицах. в которых связь технически нужно реализовать, но отражения на реальный мир эта связь не имеет. такие relation как правило реализуются суррогатными ключами. в аксапте это DimId, системная номерная серия и прочие для таких ключей в номерной серии безболезненно можно использовать & вместо # - пользователи этого не заметят. так вот, data entity полностью устраняют потребность в таких технических ключах. Цитата:
нужно генерить искуственные ключи, чтобы их можно было использовать как Foregn Key, и таким образом реализовать Relation в сильно нормализованных таблицах. да, сформулировано было коряво. надо подумать ну да, ну да - "если объект может принадлежать нескольким объектам". другими словами, граф, содержащий хотя бы один нетривиальный цикл. (не дерево) Последний раз редактировалось mazzy; 29.12.2016 в 22:49. |
|
![]() |
#4 |
Участник
|
Цитата:
Цитата:
в которых связь технически нужно реализовать, но отражения на реальный мир эта связь не имеет.
Цитата:
такие relation как правило реализуются суррогатными ключами.
в аксапте это DimId, системная номерная серия и прочие для таких ключей в номерной серии безболезненно можно использовать & вместо # - пользователи этого не заметят. так вот, data entity полностью устраняют потребность в таких технических relation. |
|
![]() |
#5 |
Участник
|
какие?
Цитата:
DimId - очень древний пример DirParty - не очень древний. Цитата:
Сообщение от belugin
![]() Relation есть в предметной области. Entity для потребителя представляет такой relation как отсутствующий, как я понял. То есть вместо "У строки есть набор аналитик" получается "У строки есть подразделение". А сама группировка некого набора признаков в понятие "набор аналитик" исчезает.
только стоит отметить, что "исчезает" из логических рассуждений. исчезает из концептуальной модели. технически все остается на месте. |
|
![]() |
#6 |
Участник
|
Любые выразимые Relations в аксапте.
Например LendgerEntity\Relations\AccountingCurrency - RelationshipType=Association Цитата:
я ж приводил.
DimId - очень древний пример DirParty - не очень древний. Адресная книга и виды ее элементов есть в UI. Цитата:
угу.
только стоит отметить, что "исчезает" из логических рассуждений. исчезает из концептуальной модели. технически все остается на месте. |
|
![]() |
#7 |
Участник
|
не-не. давай про энтити
я утверждаю, что relations сводятся в энтити к семантике "принадлежит". и других семантик, кроме "принадлежит" в энтити нет. хотя на техническом уровне relations вполне остаются. полностью аналогично ссылкам: ссылки упрощают понимание, но на техническом уровне остаются указатели. я так понимаю, что ты говоришь, что в энтити существуют relations-семантики. какие типы семантик, кроме "принадлежит" существуют в энтити? можешь сформулировать одним полным абзацем? без отсылок к предыдущим и умолчаний? так чтобы можно было точно понять твою мысль Цитата:
как значение технического свойства влияет на уровень семантики? с точки зрения понимания здесь будет - валюта принадлежит финансовой проводке. разве не? Цитата:
но не "комбинации аналитик" и не dimID. с точки зрения рассуждений пользователя о системе - в каждой проводке указана аналитика. другими словами, аналитика принадлежит проводке. а вот то, что это отдельная таблица - это сугубо технический аспект реализации. адресная книга - да. но не разбивка на это безумное число таблиц, которые требуют связей между собой. обрати внимание, как об этом думаешь: адреса принадлежат поставке (поставка содержит адреса) контактные лица клиента... и т.п. а вот внутри технической реализации будут нормализованные таблицы. Цитата:
с точки зрения рассуждений пользователя особой разницы нет - будет ли аналитика в отдельной группе или не будет. а почему неправильно? |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|