|
![]() |
#1 |
Участник
|
Хранение memo:
http://www.sql.ru/articles/mssql/200...eRecords.shtml Поиск таблиц в АОТ, где есть memo поля, дает достаточно много ссылок на таблицы в т.ч. на слое sys, среди которых не только справочники. Все-таки, с точки зрения стандартной Аксапты memo-поля - нормальное явление или от них нужно избавляться?
__________________
Ivanhoe as is.. |
|
![]() |
#2 |
Участник
|
Мне нравится чеканная формулировка "достаточно много".
Почти как "чуть менее, чем полный" ![]() Я привел список memo-полей в ax4.0. Он содержит 174 поля в 125 таблицах. ax4.0 - список memo-полей.xls Если проанализировать, то в основном это поля для хранения сообщений об ошибках. Зачастую хранятся параметры/шаблоны в контейнерах. Часто хранятся запросы (Query) Есть примеры хранения удаленных заказов/закупок в memo-полях Ну и конечно хранятся изображения. Есть memo-поля, которые находятся за гранью добра и зла - это Amounts в книгах покупок и продаж... ![]() Цитата:
Только не надо вставлять их в таблицы, которые часто выбираются. А также не стоит вставлять поля в таблицы, которые кэшируются. Например вставить memo-поле в inventTrans, LedgerTrans, Currency, ExchRates и т.п. - будет огромной ошибкой, поскольку трафик будет забит этими мемо-полями. Вставить memo-поле в CompanyInfo или LedgerParameters - будет огромной ошибкой, поскольку кэш забьется этим мемо-полем и перестанет работать как должно. (Обратите внимание на поле DEL_Logo в CompanyInfo ![]() А вот вставить memo-поле в специальную таблицу CompanyImage или специальную таблицу DocuField - почему бы и нет? Цитата:
А ведь, кажется, так просто запомнить, что, например, раскаленной докрасна кочергой можно обжечься, если будешь держать ее в руках слишком долго; что если ОЧЕНЬ глубоко порезать палец ножом, из этого пальца, как правило, пойдет кровь, и так далее и тому подобное.
И уж Алиса-то отлично помнила, что если выпьешь слишком много из бутылки, на которой нарисованы череп и кости и написано "Яд!", то почти наверняка тебе не поздоровится (то есть состояние твоего здоровья может ухудшиться). ![]() |
|
![]() |
#3 |
Участник
|
Цитата:
Посмотрел Ваш список, не нашел некоторых таблиц, сделал свой. В Вашем списке выборочно посмотрел поля - у них тип Контейнер, а не String (MEMO). В моем списке 195 полей, есть популярные таблицы EmplTable, AssetTable, CustInvoiceLine, RContractTable.
__________________
Ivanhoe as is.. |
|
|
За это сообщение автора поблагодарили: mazzy (10). |
![]() |
#4 |
Участник
|
Цитата:
Получилось два несвязанных списка. Цитата:
Но пока мне кажется, что изложенные здесь критерии правильности не изменяются. |
|
![]() |
#5 |
Участник
|
Отлично. Объединил списки.
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-таблицах постоянно разный стиль... Интересно, это имеет какой-то смысл или так получилось? |
|
![]() |
#6 |
MCTS
|
Насколько я слышал (сам пока не проверил) в Container можно положить до 60 MB. Выше утверждали что в String (Memo) до 16 MB. Ну и MSSQL типы: image и ntext, соответственно.
|
|
|
За это сообщение автора поблагодарили: mazzy (5). |
Теги |
ax4.0, memo, string, полезное |
|
|