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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.01.2009, 21:41   #1  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,340 / 3558 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Еще 5 копеек про мемо-поля. Их нельзя впихнуть в условие Where (следствие их неиндексируемости). А также - по ним невозможен поиск.
Ряд консалтиновых компаний используют в своей работе GPT (General Problem Tracker) - систему запросов клиентов с контролем их исполнения. Не знаю - пошла ли терминология от Колумбуса или нет - это неважно. Важно то, что описания задач и комментарии к ним - руки чешутся сделать мемо-полями (типа информации может быть много). Однако - это решение является архитектурной ошибкой (на мой взгляд), т.к. впоследствии возникает задача поиска по запросам или комментариям, а по мемо-полю этого сделать увы - нельзя. Я говорю о GPT, реализованного на Аксапте.

Это в качестве примера. Ряд остальных доводов хорошо расписал Mazzy
__________________
Возможно сделать все. Вопрос времени
Старый 28.01.2009, 22:29   #2  
alex55 is offline
alex55
MCTS
MCBMSS
 
224 / 145 (5) +++++
Регистрация: 13.02.2007
Адрес: Москва
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Важно то, что описания задач и комментарии к ним - руки чешутся сделать мемо-полями (типа информации может быть много). Однако - это решение является архитектурной ошибкой (на мой взгляд), т.к. впоследствии возникает задача поиска по запросам или комментариям, а по мемо-полю этого сделать увы - нельзя.
А какие более правильные альтернативы существуют в DAX, если нужно хранить более чем 1999 символов в документе?

Собственно получается задача полнотекстового поиска? Ее вообще оптимально будет средствами DAX решать?
Старый 29.01.2009, 06:48   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от alex55 Посмотреть сообщение
А какие более правильные альтернативы существуют в DAX, если нужно хранить более чем 1999 символов в документе?
Это не совсем полный вопрос.
Правильный вопрос: как хранить более чем 1999 символов НА РАЗНЫХ ЯЗЫКАХ.
Отдельной таблицей.
См. как сделано описание номенклатуры или Представления номенклатуры: одной номенклатуре может соответствовать несколько описаний на разных языках.

Название: 1.png
Просмотров: 2269

Размер: 10.5 Кб

Цитата:
Сообщение от alex55 Посмотреть сообщение
Собственно получается задача полнотекстового поиска? Ее вообще оптимально будет средствами DAX решать?
Полнотекстовый поиск средствами DAX - не очень. Он работает только по текстовым полям и не работает по memo-полям.
См. как сделан Агент данных (data crawler).

(в сторону) Кстати, может быть поэтому и не используют memo-поля для хранения описаний на разных языках.

Нажмите на изображение для увеличения
Название: 2.png
Просмотров: 446
Размер:	17.4 Кб
ID:	4237
__________________
полезное на axForum, github, vk, coub.
Старый 29.01.2009, 15:16   #4  
blokva is offline
blokva
Пенсионер
Аватар для blokva
SAP
NavAx Club
 
743 / 167 (7) ++++++
Регистрация: 04.06.2003
Адрес: Беларусь
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Еще 5 копеек про мемо-поля. Их нельзя впихнуть в условие Where (следствие их неиндексируемости). А также - по ним невозможен поиск.
Ряд консалтиновых компаний используют в своей работе GPT (General Problem Tracker) - систему запросов клиентов с контролем их исполнения. Не знаю - пошла ли терминология от Колумбуса или нет - это неважно. Важно то, что описания задач и комментарии к ним - руки чешутся сделать мемо-полями (типа информации может быть много). Однако - это решение является архитектурной ошибкой (на мой взгляд), т.к. впоследствии возникает задача поиска по запросам или комментариям, а по мемо-полю этого сделать увы - нельзя. Я говорю о GPT, реализованного на Аксапте.

Это в качестве примера. Ряд остальных доводов хорошо расписал Mazzy
Ну есть такое (что-то типа GPT) и мемо поля есть и поиск по ним есть тупой обычным перебором, и скажу я вам особо не тормозит!
и еще поиск по данным полям достаточно редкое явление, по крайней мере у нас.
__________________
Законы природы еще никто не отменял!
А еще у меня растет 2 внучки!!! Кому интересно подробности тут:
http://www.baby-shine.com/

Последний раз редактировалось blokva; 29.01.2009 в 15:25.
Старый 29.01.2009, 11:39   #5  
egorych is offline
egorych
Участник
Самостоятельные клиенты AX
Oracle
 
761 / 154 (7) ++++++
Регистрация: 09.11.2006
Адрес: Краснодарский край
Граждане-товарищи! Не путайте контейнеры и мемо поля!
Суть в том, что контейнер хранится в поле с типом image (blob) - бинарные данные, а мемо - text (varchar(max), clob). Обрабатываются они сервером по разному и на клиенте тоже работают по разному. Если text еще похож в некотором роде на varchar, от image ваще из другой оперы!
Посему считаю неправильным хранить коментарии и что-то текстовое в контейнерах.
За это сообщение автора поблагодарили: mazzy (5), Ivanhoe (1).
Старый 29.01.2009, 11:55   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от egorych Посмотреть сообщение
Граждане-товарищи! Не путайте контейнеры и мемо поля!
Пожалуй, таки да!

Цитата:
Сообщение от egorych Посмотреть сообщение
Суть в том, что контейнер хранится в поле с типом image (blob) - бинарные данные, а мемо - text (varchar(max), clob). Обрабатываются они сервером по разному и на клиенте тоже работают по разному.
Проблему то они создают одинаковую - AOS и клиент тащит их целиком.
Разве нет?

Цитата:
Сообщение от egorych Посмотреть сообщение
Посему считаю неправильным хранить коментарии и что-то текстовое в контейнерах.
Таки да!
Однако таблица ясно показывает, что разработчики иногда хранят текстовое и в контейнерах.
Например, HRMApplicationWordBookmark, ReqLog

Но в целом, похоже действительно следуют правилу: текст хранится в string(memo), а объекты/изображения/контейнеры в container.

Снова исключением, стоящим за гранью добра и зла, являются Amounts в книгах покупок и продаж

Клевая получилась ветка.
Удалось узнать что-то новое.
Спасибо!
__________________
полезное на axForum, github, vk, coub.
За это сообщение автора поблагодарили: Ivanhoe (2).
Старый 29.01.2009, 13:00   #7  
egorych is offline
egorych
Участник
Самостоятельные клиенты AX
Oracle
 
761 / 154 (7) ++++++
Регистрация: 09.11.2006
Адрес: Краснодарский край
Цитата:
Сообщение от mazzy Посмотреть сообщение
Проблему то они создают одинаковую - AOS и клиент тащит их целиком.
Разве нет?
Вообще-то нет. Если брать text, то когда на сервер уходит запрос select ... то обратно передается только <= 256 символов поля, потом клиент дополнительно запрашивает данные blob поля, если передалось не все. Насчет image точно не знаю, но думаю, алгоритм тот-же.
Старый 29.01.2009, 13:10   #8  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от egorych Посмотреть сообщение
Вообще-то нет. Если брать text, то когда на сервер уходит запрос select ... то обратно передается только <= 256 символов поля, потом клиент дополнительно запрашивает данные blob поля, если передалось не все. Насчет image точно не знаю, но думаю, алгоритм тот-же.
Как это проверить?

А когда "потом" клиент запрашивает? Это "потом" управляется программистом? Если не управляется, то какая разница - сразу или через десяток милисекунд? Сетевой трафик то все равно будет. Может настройки какие есть?
__________________
полезное на axForum, github, vk, coub.
Старый 29.01.2009, 13:16   #9  
egorych is offline
egorych
Участник
Самостоятельные клиенты AX
Oracle
 
761 / 154 (7) ++++++
Регистрация: 09.11.2006
Адрес: Краснодарский край
Цитата:
Сообщение от mazzy Посмотреть сообщение
Как это проверить?
сделайте запрос в QueryAnaliser (Management studio) к табличке с мемо полем и посмотрите что вернется, ну только чтобы в поле было текста ну с 1000 символов.

Цитата:
Сообщение от mazzy Посмотреть сообщение
А когда "потом" клиент запрашивает? Это "потом" управляется программистом? Если не управляется, то какая разница - сразу или через десяток милисекунд? Сетевой трафик то все равно будет. Может настройки какие есть?
Потом, это например, когда вы в гриде, например переходите на эту запись, а если не перейти, то оно может и не передться. Хотя признаю - Аксапта может и автоматом все это подтягивать на АОС, чтоб не париться Трафик, есс-но будет!
Теги
ax4.0, memo, string, полезное

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
HRM,склонение ФИО и все все все OmenSore DAX: Функционал 22 09.02.2009 17:08
Максимальная длина символьного поля CCADOField Владимир Максимов DAX: Программирование 5 11.01.2008 11:32
dax-dilettante: 15. System Classes \ The Collection Classes Blog bot DAX Blogs 0 26.09.2007 23:51
dax-lessons: Active directory in Axapta Blog bot DAX Blogs 0 27.08.2007 23:00
Как в Design из Reports выводить многострочные Fields типа String? bolt DAX: Программирование 1 19.02.2004 16:57

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

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

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