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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.02.2015, 11:47   #5  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5813 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Насколько я знаю, штатно нельзя средствами Аксапты указать СУБД, что контейнерное поле будет иметь ограниченную длину. Собственно, EDT Sha1HashCode (реализованный, заметьте, в ядре) - это такой своего рода костылик: вроде как поле контейнерное, но в то же время ядро знает, что именно там хранится, и соотв. образом ограничивает длину поля в БД.
В общем случае включать контейнерное поле в кластерный или любой другой индекс - не очень удачная идея. Заметьте, что в стандартном приложении так не делают, вместо этого там используют значение криптографической хеш-функции от значений "ключевых" полей, получая на выходе значение фиксированной длины. Так сделано и в финансовых, и в складских аналитиках (InventDim).
Собственно, контейнерное поле тут понадобилось потому, что SHA-1 возвращает 160-битное значение: 20 байт + их обертка в контейнер дали в итоге 28 байт. В случае использования, к примеру, MD5, которая возвращает 128-битное значение, можно было бы вместо varbinary использовать тип uniqueidentifier, поскольку GUID также имеет длину 128 бит (16 байт): это позволило бы хранить значение хеш-функции без дополнительной контейнерной "обертки". Но в общем и целом чем больше длина результата хеш-функции, тем меньше вероятность коллизий, поэтому, видимо, предпочтение было отдано SHA-1.
За это сообщение автора поблагодарили: NetBus (1), AraraT® (4), dech (3).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Хранение шаблонов в БД Hammer DAX: Программирование 0 07.04.2011 13:19
SQL Server - создание таблицы в БД Аксапты Hyper DAX: Программирование 7 06.08.2010 19:40
Вставка строк в таблицы Аксапты сторонними средствами Андре DAX: База знаний и проекты 1 07.05.2009 16:49
Матрица совместимости версий Аксапты и версий БД azhukov DAX: Администрирование 1 20.10.2005 15:06
Получить значение поля таблицы по номеру (Id) поля Anais DAX: Программирование 2 15.04.2004 13:00

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

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

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