![]() |
#21 |
Участник
|
Не надо хранить дубликаты информации. Это одно из первых правил. Просто напишите функцию в одном месте и вызывайте ее из разных
|
|
![]() |
#22 |
Участник
|
Цитата:
Вы готовы поменять ВСЮ систему и принципы? Если готовы-то вперед, только не забывайте, что после Вас кому то придется работать с таким исправленным Навижиным. Лично я бы не хотела. Итог - не создавайте проблем ни себе, ни тем кто придет после вас. ![]() ЗЫ. И в любом случае отчет переделать ГОРАЗДО проще, чем лезть в учет ![]() |
|
![]() |
#23 |
Участник
|
А если в TableRelation моего поля "описание" создать условие
IF (Source Type=CONST(Vendor)) Vendor.Name WHERE (No.=FIELD(Source No.)) можно чтоб он по умолчанию сразу по открытию таблицы выводил значения, без выбора каждого? Спасибо. |
|
![]() |
#24 |
NavAx
|
Цитата:
Не надо хранить дубликаты информации. Это одно из первых правил. Просто напишите функцию в одном месте и вызывайте ее из разных
![]()
__________________
"Моей лошадке ядрышком полмордочки снесло..." А.В.Суворов, письма к дочери |
|
![]() |
#25 |
Участник
|
Яков-ты не прав. Поле Description- это не дублирование операций. Приведи хоть какой нибудь пример?
![]() |
|
![]() |
#26 |
NavAx
|
Причем тут операции? Fordewind говорил про дубликаты информации.
И, по идее, перенос поля description из карточки товара (счета, услуги...) в строку заказа продажи, например - это и есть то самое дублирование информации.
__________________
"Моей лошадке ядрышком полмордочки снесло..." А.В.Суворов, письма к дочери |
|
![]() |
#27 |
Участник
|
Fordewind говорил не про такое дублирование, которое ты говоришь. То что ты говоришь не дублирование информации-это описание операции по определенным правилам.
Объясню про дублирование-про которое здесь говорилось. Например-есть таблица 18 Клиент-в которой поля Но(ключевое поле=коду клиента в системе) и Название (Название клиента). Так вот в 21 Cust. Ledger Entry - запоминается только КодКлиента(который берется из таблицы 18 и связан с этой таблицей) и , а вот если мы еще в 21 будем писать и Название (из этой же таблицы 18). Вот тогда это и называется дублированием. Конкретно мы дублируем поле Название. Это делать не надо. |
|
![]() |
#28 |
NavAx
|
Ситуация с 37-й таблицей отличается лишь тем, что в поле "Но." может стоять не обязательно код именно товара, а может быть номер счета или чего-нибудь еще (в зависимости от типа). Больше ничем вообще. Поэтому я не понимаю, почему ты различаешь "мое дублирование" и "дублирование Fordewind'а"
![]()
__________________
"Моей лошадке ядрышком полмордочки снесло..." А.В.Суворов, письма к дочери |
|
![]() |
#29 |
Участник
|
Цитата:
Сообщение от Дуд
![]() Ситуация с 37-й таблицей отличается лишь тем, что в поле "Но." может стоять не обязательно код именно товара, а может быть номер счета или чего-нибудь еще (в зависимости от типа). Больше ничем вообще. Поэтому я не понимаю, почему ты различаешь "мое дублирование" и "дублирование Fordewind'а"
![]()
__________________
Want to believe... |
|
![]() |
#30 |
NavAx
|
Ах речь о том, что это поле доступно для редактирования
![]() Тогда да, тогда я не о том ![]()
__________________
"Моей лошадке ядрышком полмордочки снесло..." А.В.Суворов, письма к дочери |
|
![]() |
#31 |
Участник
|
Яков-ты опускаешь наиважнейшую деталь-связка поля с подчиненным справочником.
Причем здесь редактирование??? |
|
![]() |
#32 |
Administrator
|
вставлю пару копеек
дублирования в навижн полно, например зачем писать код товара в 5802, когда там есть уже ссылка на товар книгу операций, в которой этот код товара есть? именно затем, чтобы потом было проще строить запросы (для отчетов, форм, вычисляемых полей), т.е. это дублирование, обычно, ОПРАВДАНО. одно хочется сказать, что дублируются обычно поля типа Коде, которые полегче и побыстрее текстов. есть еще одно "дублирование", которое выражается в полях типа флоуфилд лукап, это для того, чтобы формы было попроще делать, но оно не хранится. к сожалению, условный флоуфилд создать нельзя, а так бы именно он решил сразу все проблемы: если источник Клиент, то лукап на клиента, если поставщик, то лукап на поставщика. предлагаю отсутствие условного лукапа считать недоработкой движка Navision! |
|
![]() |
#33 |
Участник
|
Народ я в шоке. Вы что книг по программированию не читали???????
И сейчас мы уже отходим от темы в сторону. Дублировать с зависимых справочников информацию, как в примере мной выше указанном, в программировании это плохой тон. Потому что растет объем записи и т.д. Конечно наверняка-где то в Наивжине есть такие вещи. Но к этому стремиться не надо. |
|
![]() |
#34 |
Moderator
|
Во всех книгах по программированию, такие вещи называются не дублированием, а денормализацией. Также различают степени нормализации.
В тех же книгах по проектированию БД пишут, что ненормализованные базы - это плохо. Это в теории. А в реальной жизни все как водится по другому. Денормализованные базы как правило быстрее, гибче и удобнее. Ну а размер БД сейчас никакой роли не играет. |
|
![]() |
#35 |
Участник
|
|
|
![]() |
#36 |
Участник
|
Насколько я помню из институтского курса БД может быть аж в 5 нормальных формах, причем хорошей является третья нормальная форма - вот только работать в navision без встроеной возможности писать запросы практически невозможно
![]()
__________________
Want to believe... |
|
![]() |
#37 |
Moderator
|
Каждое решение - делать дублирование или не делать бывает хорошим в определенный момент времени.
Однажды в одной фирме программисты налабали с десяток табличек с дублированием одинаковых данных совершенно сознательно. При этом понимая, что в далеком будущем будут проблемы с и поддержкой такого кода и с синхронизацией данных между разными таблицами. Плевались, но все равно лабали, потому что заказчик хотел функционал, что называется, "сегодня и целиком". Написали все за один день. Заказчик остался доволен и счет за работу оплатил с радостью. А через год этому клиенту счет выставили уже за поддержку и за синхронизацию :-) |
|
![]() |
#38 |
Участник
|
Вот это страсти!
Есть понятие "идеал" и "реальность". Так вот надо стремиться к идеалу по мере возможности. |
|
![]() |
#39 |
Участник
|
Еще можно добавить просто вычисляемое поле.
|
|