|
![]() |
#1 |
Участник
|
Термины.
Искусственный ключ -- сгенерированный ключ, который используется пользователем и внутри базы данных (например, EmplID) Суррогатный ключ -- сегнерированный ключ, который используется только внутри базы данных. Точки зрения сторонников EK и СК изложены тут: СК: Natural Keys Versus Artificial Keys by Tentser (Russian) ЕК: Ключ или отмычка Цитата:
Цитата:
Ты видимо с 1Сv8 не работал и не видел ошибку "в запросе не может быть более 256 таблиц...". В последних релизах патч сделали - собирают несколько разных запросов.
Еще мне очень нравится понятие graceful degradation -- делаем что можем, если что-то не можем, то делаем только это. Например, если формировальщик запроса видит, что количество таблиц в джоине превышает 256, то он реализует вывод наименований дисплей методами, причем только тех, которые мешаются. Цитата:
И добавлю еще: там где это действительно нужно, Аксапта нисколько не мешает программисту добавить свои join'ы, чтобы показать наименование.
2. Она не дает фильтровать по аутерджоинам Цитата:
Ай-ай-ай... Ну, не создает эта собака дополнительные запросы.
Оставляет на откуп программисту. Вот ведь сволочь то какая... X++: display InventName inventName() { return InventTable::find(this.ItemID).Name; } Цитата:
А ты считал сколько наименований надо приджойнить для того, чтобы показать например номенклатуру?
Нет? Посчитай. 1. Опционально 2. Не обязательно джоинить Цитата:
Ай-ай-ай... А в запросе CTRL+F3 добавить таблицу руками и записать запрос никак?
Блин, ей богу не ожидал. Цитата:
Ни в коем случае не программировать как говорят некоторые.
Или программировать в крайнем случае, когда клиент уж совсем уперся. Но четко осозновая, что для каждого наименования получится дополнительный join. Со всеми вытекающими последствиями для производительности. Вопрос про ЕК такой: что вы делаете когда он меняется? Например был клиент "Светик" а стал "Мотылек"? Или изменилось структура групп номенклатуры вместо ПЛ0001 (Группа "плюшевые игрушки", изделие 0001 "Медвежонок "Миша"") МЛ0001 (Группа "плюшевые игрушки для младшего возраста", , изделие 0001 "Медвежонок "Миша"") переименовываете первичный ключ, даже если он участвует в InventTrans и иногда его надо сопоставлять с распечатанными год назад документами? |
|
|
За это сообщение автора поблагодарили: Logger (1). |
![]() |
#2 |
Участник
|
Цитата:
А каково твое определение для ЕК? А... с этим согласен. Цитата:
Сообщение от belugin
![]() Еще мне очень нравится понятие graceful degradation -- делаем что можем, если что-то не можем, то делаем только это.
Понятно, что они могут все в рамках заданного бюджета (и в пределах разумного ![]() А реально, что мы можем с этим сделать? Написать скрипты редактора по созданию таких методов? Цитата:
Не, этот пример не катит. Если уж я чего-то пишу в коде, то не стоит сваливать на аксапту, по-моему ![]() А вот если я не пишу, а работаю только свойствами и объектами AOT... Цитата:
Нужно показывать одно поле Name? Вместе с полем NameAlias? Вместе с полем, которое показывает Название на текущем/другом языке? Цитата:
Сообщение от belugin
![]() Вопрос про ЕК такой: что вы делаете когда он меняется? Например был клиент "Светик" а стал "Мотылек"? Или изменилось структура групп номенклатуры вместо
... переименовываете первичный ключ, даже если он участвует в InventTrans и иногда его надо сопоставлять с распечатанными год назад документами? Если сохранять историю обязательно, то создается новая запись, а старая блокируется от использования. |
|
![]() |
#3 |
Участник
|
ЕК ключ который генерируется вне системы => вне нашего контроля (типа наименование, или ИНН или что-то еще). Т.е. имеет бизнес-значение.
Цитата:
Хм... Понятно, что мы можем громко кричать и требовать от разработчиков Аксапты.
Понятно, что они могут все в рамках заданного бюджета (и в пределах разумного ![]() Цитата:
А реально, что мы можем с этим сделать?
Написать скрипты редактора по созданию таких методов? Цитата:
чтобы "собака аксапта выбирала не все поля, а только Name" надо не find вызывать, а делать select по одному полю.
Цитата:
Не, этот пример не катит.
Если уж я чего-то пишу в коде, то не стоит сваливать на аксапту, по-моему ![]() А вот если я не пишу, а работаю только свойствами и объектами AOT... Цитата:
Как именно? Показывать наименование?
Нужно показывать одно поле Name? Вместе с полем NameAlias? Вместе с полем, которое показывает Название на текущем/другом языке? Цитата:
Если сохранять историю не обязательно (как с группами номенклатуры), то переименование.
|
|
![]() |
#4 |
Участник
|
Цитата:
Сообщение от belugin
![]() Я уже предложил см. Правильные справочники
|
|
![]() |
#5 |
Участник
|
Цитата:
Сообщение от belugin
![]() Вопрос про ЕК такой: что вы делаете когда он меняется? Например был клиент "Светик" а стал "Мотылек"? Или изменилось структура групп номенклатуры вместо
ПЛ0001 (Группа "плюшевые игрушки", изделие 0001 "Медвежонок "Миша"") МЛ0001 (Группа "плюшевые игрушки для младшего возраста", , изделие 0001 "Медвежонок "Миша"") переименовываете первичный ключ, даже если он участвует в InventTrans и иногда его надо сопоставлять с распечатанными год назад документами?
Цитата:
Да, еще приходилось в заголовках форм выводить управленческие названия вместо TitleField2... Последний раз редактировалось gl00mie; 05.07.2007 в 11:33. Причина: typo |
|
|
За это сообщение автора поблагодарили: belugin (3). |
![]() |
#6 |
Участник
|
Цитата:
А... да, почему бы не сделать это? Цитата:
И где они распространены? Здесь я пытался понять почему же проклятые буржуи используют код, а не наименование. http://axapta.mazzy.ru/lib/autonumber/ А ведь действительно, клиенты-поставщики у них просто нумеруются. Причем не только в Аксапте/Навижине. Погляди на интернет магазины, посмотри на другие системы (кстати, а как это делается в BAAN?) Цитата:
Сообщение от belugin
![]() Я уже предложил см. Правильные справочники
Да. Это разовая процедура. Требуется раз в полстолетия. А ты предлагаешь делать join каждый раз? ![]() Цитата:
Поскольку: нарушается нормализация первой формы. Цитата:
Сообщение от gl00mie
![]() На это все накладывалась еще одна особенность, связанная с тем, что для одной номенклатуры необходимо поддерживать три различных названия: бухгалтерское, управленческое для AX, схожее с тем, что пишут поставщики в своих документах, и управленческое для 1С, к которому привыкли все кладовщики и другого понимать они не хотят.
Максим, будешь создавать 3 EDT или просить добавить в EDT массив наименований? ![]() Цитата:
http://axapta.mazzy.ru/lib/tree/ http://axapta.mazzy.ru/lib/tree2/ http://axapta.mazzy.ru/lib/tree3/ а также: http://forum.mazzy.ru/index.php?showtopic=1275 Цитата:
Особенно согласен с формулировкой "ряд форм". Немножко смущает, что нет формулировки "ряд отчетов". |
|
![]() |
#7 |
Участник
|
Цитата:
![]() Цитата:
![]() ![]() |
|
![]() |
#8 |
Участник
|
В баане геренирование идентификаторов, насколько я знаю, польностью возложено на пользователей. Т.к. я работал в-основном с нестандартным функционалом, то не знаю, как там с клиентами...
|
|
![]() |
#9 |
Участник
|
Ну ИК может иметь, а СК - нет.
Цитата:
Что такое "распространненные вещи"?
И где они распространены? Здесь я пытался понять почему же проклятые буржуи используют код, а не наименование. Цитата:
А ты предлагаешь делать join каждый раз?
![]() Цитата:
Максим, будешь создавать 3 EDT или просить добавить в EDT массив наименований?
![]() |
|
![]() |
#10 |
Axapta
|
|
|
![]() |
#11 |
Участник
|
|
|
![]() |
#12 |
Участник
|
Цитата:
Про Абрамову уже говорили. Если она замуж выйдет, то стандартная процедура RenamePrimaryKey для изменения КОДА |
|
![]() |
#13 |
Участник
|
Ну, обычно люди еще хотят ФИО рядом видеть...
Вообще, получается, что я один такой несчастный, что все от меня наименования требуют. Остальных удовлетворяет значимый ID и только он и дисплей методов типа X++: display EmplName emplName() { return (select firstOnly EmplName from EmplTable where EmplTable.EmplID == this.EmplID).EmplName; } |
|
![]() |
#14 |
Участник
|
Почему ты так решил?
Это постоянная тема. См. например ссылку на обсуждение Абстрактного классификатора и поищи обсуждения по ключевому слову лукап/lookup Анекдот: Жена (Ж) звонит на мобильный мужу (М). (Ж) - дорогой, будь осторожен, по радио сообщили, что какой-то идиот едет по встречной полосе (М) - да их тут сотни! |
|
![]() |
#15 |
Участник
|
К сожалению изменить EmplId через "Паспорт записи" недостаточно (AX 3.0 SP4 EE). При создании строки в EmplTable создается строка в таблице RHRMVirtualNetworkTable, при этом ключевому полю hrmVirtualNetworkId присваивается значение поля EmplId. При изменении кода в EmplId, код в hrmVirtualNetworkId останется прежним - в результате нельзя будет создать нового сотрудника в EmplTable с прежним кодом.
|
|
|
За это сообщение автора поблагодарили: gl00mie (2). |
Теги |
естественный ключ, искусственный ключ, как правильно, ключ, суррогатный ключ, crm2011 |
|
![]() |
||||
Тема | Ответов | |||
Абстрактный классификатор | 52 | |||
Централизованные справочники | 12 | |||
А есть ли в Аксапте стандартные российские справочники? | 11 | |||
Как заполнять основные справочники? | 9 |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|