29.01.2009, 10:59 | #21 |
Участник
|
Цитата:
Получилось два несвязанных списка. Цитата:
Но пока мне кажется, что изложенные здесь критерии правильности не изменяются. |
|
29.01.2009, 11:26 | #22 |
Участник
|
Отлично. Объединил списки.
DAX4SP2_memo_full.xls Всего получилось 263 таблицы (из них 32 удаленные) и 368 полей (из них 55 удаленных). Цитата:
Но согласен, что запросы по ним проходят достаточно часто. По поводу EmplTable я бы поморщился и начал говорить о неправильном проектном решении. Но там предполагается хранить только идентификаторы. Они не такие и большие. Хотя конечно неаккуратненько. В AssetTable также - неаккуратненько, но особого желания кричать "козлы!" не возникает. Там хранятся текстовые комментарии. И вряд ли действительно большие blob-объекты. RContract... Ну... блин. плохо. Но терпимо. А вот RCashTrans, rTax25RegisterTrans, rPayRateTrans - просто отвратительно. Сделал фильтр по trans. Оказывается в проводках находится 18 memo-полей (из них 7 уже удалено). Среди оставшихся 4 в EPTransactionSumTrans, 3 поля в российских таблицах, и 2 в TaxElectronicDeclarationTrans. Мне кажется, что это стоит исправлять. Также мне кажется ошибкой наличие Memo-поля в таблицах InventBatch, InventColor, InventSerial, InventSize. Но тут надо подумать. Поскольку здесь вступает в силу соображение о 256 символах. По этим полям всего-лишь нет поиска и индексов. Думаю, что критерий правильности остается неизменным Цитата:
вставить memo-поле в inventTrans, LedgerTrans, Currency, ExchRates и т.п. - будет огромной ошибкой, поскольку трафик будет забит этими мемо-полями.
Вставить memo-поле в CompanyInfo или LedgerParameters - будет огромной ошибкой, поскольку кэш забьется этим мемо-полем и перестанет работать как должно. (Обратите внимание на поле DEL_Logo в CompanyInfo ) А вот вставить memo-поле в специальную таблицу CompanyImage или специальную таблицу DocuField - почему бы и нет? В связи с появлением нового списка встает вопрос: а как лучше создавать memo-поле - как контейнер или как string с длиной memo? Так есть таблицы, которые содержат поля, заданные разными способами SysInetCSS SysInfolog (!) tutorial_AuctionItems В aif-таблицах постоянно разный стиль... Интересно, это имеет какой-то смысл или так получилось? |
|
29.01.2009, 11:39 | #23 |
Участник
|
Граждане-товарищи! Не путайте контейнеры и мемо поля!
Суть в том, что контейнер хранится в поле с типом image (blob) - бинарные данные, а мемо - text (varchar(max), clob). Обрабатываются они сервером по разному и на клиенте тоже работают по разному. Если text еще похож в некотором роде на varchar, от image ваще из другой оперы! Посему считаю неправильным хранить коментарии и что-то текстовое в контейнерах. |
|
|
За это сообщение автора поблагодарили: mazzy (5), Ivanhoe (1). |
29.01.2009, 11:46 | #24 |
MCTS
|
Насколько я слышал (сам пока не проверил) в Container можно положить до 60 MB. Выше утверждали что в String (Memo) до 16 MB. Ну и MSSQL типы: image и ntext, соответственно.
|
|
|
За это сообщение автора поблагодарили: mazzy (5). |
29.01.2009, 11:55 | #25 |
Участник
|
Пожалуй, таки да!
Цитата:
Разве нет? Цитата:
Однако таблица ясно показывает, что разработчики иногда хранят текстовое и в контейнерах. Например, HRMApplicationWordBookmark, ReqLog Но в целом, похоже действительно следуют правилу: текст хранится в string(memo), а объекты/изображения/контейнеры в container. Снова исключением, стоящим за гранью добра и зла, являются Amounts в книгах покупок и продаж Клевая получилась ветка. Удалось узнать что-то новое. Спасибо! |
|
|
За это сообщение автора поблагодарили: Ivanhoe (2). |
29.01.2009, 13:00 | #26 |
Участник
|
Вообще-то нет. Если брать text, то когда на сервер уходит запрос select ... то обратно передается только <= 256 символов поля, потом клиент дополнительно запрашивает данные blob поля, если передалось не все. Насчет image точно не знаю, но думаю, алгоритм тот-же.
|
|
29.01.2009, 13:10 | #27 |
Участник
|
Цитата:
А когда "потом" клиент запрашивает? Это "потом" управляется программистом? Если не управляется, то какая разница - сразу или через десяток милисекунд? Сетевой трафик то все равно будет. Может настройки какие есть? |
|
29.01.2009, 13:16 | #28 |
Участник
|
сделайте запрос в QueryAnaliser (Management studio) к табличке с мемо полем и посмотрите что вернется, ну только чтобы в поле было текста ну с 1000 символов.
Потом, это например, когда вы в гриде, например переходите на эту запись, а если не перейти, то оно может и не передться. Хотя признаю - Аксапта может и автоматом все это подтягивать на АОС, чтоб не париться Трафик, есс-но будет! |
|
29.01.2009, 13:31 | #29 |
Участник
|
Вот-вот. Поэтому QA не показатель
|
|
29.01.2009, 13:49 | #30 |
Модератор
|
Цитата:
Сообщение от egorych
Вообще-то нет. Если брать text, то когда на сервер уходит запрос select ... то обратно передается только <= 256 символов поля
Цитата:
сделайте запрос в QueryAnaliser (Management studio) к
табличке с мемо полем и посмотрите что вернется Цитата:
Суть в том, что контейнер хранится в поле с типом image (blob) - бинарные данные, а мемо - text (varchar(max), clob). Обрабатываются они сервером по разному и на клиенте тоже работают по разному
Цитата:
Потом, это например, когда вы в гриде, например переходите на эту запись, а если не перейти, то оно может и не передться
__________________
-ТСЯ или -ТЬСЯ ? |
|
29.01.2009, 15:16 | #31 |
Пенсионер
|
Цитата:
Сообщение от sukhanchik
Еще 5 копеек про мемо-поля. Их нельзя впихнуть в условие Where (следствие их неиндексируемости). А также - по ним невозможен поиск.
Ряд консалтиновых компаний используют в своей работе GPT (General Problem Tracker) - систему запросов клиентов с контролем их исполнения. Не знаю - пошла ли терминология от Колумбуса или нет - это неважно. Важно то, что описания задач и комментарии к ним - руки чешутся сделать мемо-полями (типа информации может быть много). Однако - это решение является архитектурной ошибкой (на мой взгляд), т.к. впоследствии возникает задача поиска по запросам или комментариям, а по мемо-полю этого сделать увы - нельзя. Я говорю о GPT, реализованного на Аксапте. Это в качестве примера. Ряд остальных доводов хорошо расписал Mazzy и еще поиск по данным полям достаточно редкое явление, по крайней мере у нас.
__________________
Законы природы еще никто не отменял! А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/ Последний раз редактировалось blokva; 29.01.2009 в 15:25. |
|
29.01.2009, 15:33 | #32 |
Участник
|
|
|
Теги |
ax4.0, memo, string, полезное |
|
|