Цитата:
Сообщение от
belugin
Искусственный ключ -- сгенерированный ключ, который используется пользователем и внутри базы данных (например, EmplID)
Суррогатный ключ -- сегнерированный ключ, который используется только внутри базы данных.
Точки зрения сторонников EK и СК изложены тут:
ЕК - естественный ключ?
А каково твое определение для ЕК?
Цитата:
Сообщение от
belugin
Я предлагаю, чтобы автоматизм был опциональным.
А... с этим согласен.
Цитата:
Сообщение от
belugin
Еще мне очень нравится понятие
graceful degradation -- делаем что можем, если что-то не можем, то делаем только это.
Хм... Понятно, что мы можем громко кричать и требовать от разработчиков Аксапты.
Понятно, что они могут все в рамках заданного бюджета (и в пределах разумного
)
А реально, что мы можем с этим сделать?
Написать скрипты редактора по созданию таких методов?
Цитата:
Сообщение от
belugin
X++:
display InventName inventName()
{
return InventTable::find(this.ItemID).Name;
}
здесь собака аксапта выбирает все поля а не только Name. Так что вредные автоматизмы по факту присутствуют все равно.
чтобы "собака аксапта выбирала не все поля, а только Name" надо не find вызывать, а делать select по одному полю.
Не, этот пример не катит.
Если уж я чего-то пишу в коде, то не стоит сваливать на аксапту, по-моему
А вот если я не пишу, а работаю только свойствами и объектами AOT...
Цитата:
Сообщение от
belugin
А было бы плохо, если бы то же самое можно было бы сделать более удобно?
Как именно? Показывать наименование?
Нужно показывать одно поле Name? Вместе с полем NameAlias? Вместе с полем, которое показывает Название на текущем/другом языке?
Цитата:
Сообщение от
belugin
Вопрос про ЕК такой: что вы делаете когда он меняется? Например был клиент "Светик" а стал "Мотылек"? Или изменилось структура групп номенклатуры вместо
...
переименовываете первичный ключ, даже если он участвует в InventTrans и иногда его надо сопоставлять с распечатанными год назад документами?
Если сохранять историю не обязательно (как с группами номенклатуры), то переименование.
Если сохранять историю обязательно, то создается новая запись, а старая блокируется от использования.