|
|
|
Сравочник - устаревающие значения
|
|||
|---|---|---|---|
|
#18+
Уважамые знатоки! (с) ШтоХдеКада?! Подскажите плюсы и минусы пользования поля "Акутально" в справочниках: идея такова - не мучиться с кучей устаревающих позиций при выборе из справочника, а добавить в него поле логическое и предлагать пользователю к выбору только отмеченные. Вопрос: какие грабли-блохи могут выплыть / как реализовать без блох? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2003, 14:30 |
|
||
|
Сравочник - устаревающие значения
|
|||
|---|---|---|---|
|
#18+
Драсте... Всегда так и делал. Только отмечал не актуальные, а "не актуальные". Так для восприятия понятней ИМХО. Блоха номер раз: Пользователю обязательно понадобится не актуальные данные, поэтому надо предоставить ему возможность быстро переключиться в режим просмотра "Включая устаревшие данные" или "Устаревшие данные". Вообще-то у меня было три режима: "Только актуальные", "Все (Актуальные, включая устаревшие)" и "Только не актуальные". На практике оказалось, что последний режим практически не используется, поэтому от его поддержки практически отказался (можно отфильтровать записи и по данному признаку, но не так быстро, т.е. режим не имеет "горячих клавиш"). При работе в сети есть тонкости по оптимизации... Блоха номер два: При отображении данных в режиме "Включая устаревшие" естественно надо дать возможность пользователю идентифицировать данные, поэтому логическое поле должно присутствовать в форме. Блоха номер три: Пользователь не в состоянии помнить все товарные позиции (все данные справочника), поэтому частенько бывает, что некий товар, который уже отмечен как "не актуальный" заводится в базе повторно - ну не увидил его оператор в отфильтрованном по актуальности наборе, вот и завёл новый. Редко, но и такое случалось... Приходится создавать достаточно сложный (как с точки зрения бизнес-логики, так и с точки зрения кодовой и интерфейсной реализации) механизм объединения товарных позиций. Типа две позиции справочника фактически являются одним и тем же, а по сему их необходимо слить в одну "строку" справочника с учетом движения товара, товарных остатков и т.п. Попытка реализовать синтаксический анализ добавляемых в справочник позиций на предмет повторени провалилась с треском... Слишком уж у операторов фантазия большая в плане "называния", и это не смотря на наличие внутрифирменных требований к наименованиям. Вроде всё что вспомнилось "на вскидку"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2003, 15:10 |
|
||
|
Сравочник - устаревающие значения
|
|||
|---|---|---|---|
|
#18+
присоединюсь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2003, 15:12 |
|
||
|
Сравочник - устаревающие значения
|
|||
|---|---|---|---|
|
#18+
Хорошо, а как быть с такой ситуацией: статья устарела, галочку поставили, в combobox с роусорсом по этому справочнику она соответственно не попадет - для ВВОДА так и нужно, устарела - не выбирать! А как быть с ПОКАЗОМ СТАРЫХ записей? ведь если не попадет в роусорс, на месте этой записи будет пусто... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2003, 17:57 |
|
||
|
Сравочник - устаревающие значения
|
|||
|---|---|---|---|
|
#18+
А в показе старых записей просто не учитывать поле "Актуально". Очень удобно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2003, 18:04 |
|
||
|
Сравочник - устаревающие значения
|
|||
|---|---|---|---|
|
#18+
Нуфмеханизм объединения товарных позиций Он запускается, видимо, в тот момент, когда обнаруживается дублирование в справочнике. Значит, оно все-таки когда-то обнаруживается, несмотря на всю фантазию и невнимательность операторов. А раз так, то почему бы в этот момент не поступить иначе - взять и заменить все вхождения старого кода в таблицах на новый? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2003, 18:09 |
|
||
|
Сравочник - устаревающие значения
|
|||
|---|---|---|---|
|
#18+
Когда я был в аптечном бизнесе и работал на фирме-дистрибьюторе аптечной номенклатуры, мы предлагали аптекам свою автоматизированную программу складского учета и продаж. Постерминалы (кассы) +раб.места для оприходования товаров. Так справочник у нас был на всех клиентов общий. Т.е. в момент предстартовой инвентаризации в аптеке там ставилась наша актуальная копия справочника. Результаты инвентаризации выявляли т.н. собственную номенклатуру аптеки, т.е. то подмножество общего справочника товаров, которым она оперирует. По этому полю и был фильтр, но всегда была возможность пепреключится на полный справочник. Потом (после инвентаризации, во время оприходования конкретных поставок) аптека вводила свою новую номенклатуру на "временные" коды (т.е. с большими ID 80000000....) и на нашу фирму, которая занималась сервисной поддержкой аптечного софта и единого справочника одновременно с продажей таблеток, помимо заявок на товар поступали т.н. заявки на пополнение номенклатурного справочника. В нашем офисе был АРМ, на который стекались эти пополнения ото всех автоматизированных клиентов и девчушка, вооружившись томами энциклопедий, реестров, интернетом и прочее занималась тем, что выставляла соответствия между заявкой от аптеки и реальным товаром, который мог быть предложен на рынок. Если выяснялось, что товар - не дублер, то позиция по всем правилам грамматики заводилась на постоянный код, а в аптеку уходила команда замещения, которая добавляла новую позицию в локальный аптечный справочник и временный код везде замещался на новый постоянный. Если выявлялся дубль, то шла команда замещения временного кода на один из старых постоянных кодов опять же везде. И так славно все работало...Мне прям жалко, что фирма развалилась и софт теперь эксплуатируется под другим логотипом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2003, 18:28 |
|
||
|
Сравочник - устаревающие значения
|
|||
|---|---|---|---|
|
#18+
для Хам трамвайный: :) Спасибо! Такой краткой похвалы (именно так и расцениваю:) я еще не получал. Как и вообще похвалы от тебя в целом :) //от него дождешся... ничего не спрашивает, ничем помочь не дает... хамит постоянно... для Alexus12: Alexus12Хорошо, а как быть с такой ситуацией:<...>А как быть с ПОКАЗОМ СТАРЫХ записей? ведь если не попадет в роусорс, на месте этой записи будет пусто... Ну так почему я и говорил о двух (или более) РЕЖИМАХ работы. Т.е. если у тебя форма в режиме "Только Актуальные", то ну нигде абсолютно оператор не должен умудриться наткнуться на старые данные. В то же время, если оператор знает, что у него есть такой товар (тьфу! опять товар... вообщем, я буду говорить "товар", а ты перефразируй на свой лад), но он "устаревший", или просто хочет что-либо поискать в "устаревших" товарах, то он переводит форму в РЕЖИМ "Включая устаревшие" и уже на этой же самой форме, без какой либо смены интерфейса он может увидеть весь перечень товара. Т.е. в твоем комбобоксе надо менять условия фильтрации. Опять же, если операторы выбирают позиции из комбобокса (?!!!), то этот комбобокс в режиме "Включая устаревшие" должен иметь логическое поле "Устаревший товар". Это для того, чтобы юзер мог отделить зерна от плевел. Еще раз повторю, что речь не идет о отображении данных в каком-то конкретном контроле или форме, а речь о переключении РЕЖИМОВ - понимай и реализуй в соответствии с твоей задачей. для Владимир Саныч: Владимир СанычЗначит, оно все-таки когда-то обнаруживается... Ну да. Может обнаружиться и на складе, когда приходят отборщики и говорят, что у них есть товар, похожий на выписанный по накладной, но он всю жисть назывался (приходил в отборных листах) по другому. Типа, это оно теперь и есть? Владимир СанычА раз так, то почему бы в этот момент не поступить иначе - взять и заменить все вхождения старого кода в таблицах на новый? Саныч, случаи бывают разные :) В простейшем случае возможно прокатит и такой простецкий вариант, но иногда ведь и не прокатит... Я тонкостей не помню, но вот на вскидку случаи, когда просто изменить ID не прокатит: 1. Товарные остатки хранятся, а не формируются динамически (подход спорный, но здесь не обсуждается). Если у нас есть табличка с товарными остатками, то просто перезаписав ID мы получим попытку нарушения целостности данных - IDшка существует, а мы пытаемся засунуть в эту же таблицу еще одну такую же (ненужную позицию перезаписываем IDшкой старой позиции). Что бы избежать этой радости приходится остаток перекидывать (плюсовать) с остатком "правильной" позиции, а строку с неправильной позицией удалять. 2. ээээээээ... Воспоминания иссякли :) Давненько дело было... Но, помнится, это место (объединение аналогичных товарных позиций) было одним из наиболее сложных участков в том проекте. Можно попробовать поднять архив и покопаться в нем, но ведь и так самостоятельно можно "дофантазировать" :) Кроме того, я не зря упомянул проблему с организацией интерфейса. Сначало надо выбрать объединяемые товары, затем выбрать "основной" товар, к которому будет приравнен удаляемый, потом заставить юзера присесть три раза (ибо "откат" на его "ой! я ошибся" очень сложно организовать) и т.п. Оптимальным вариантом, конечно, является драг-энд-дроп, но помнится руки до этого не дошли... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2003, 18:41 |
|
||
|
Сравочник - устаревающие значения
|
|||
|---|---|---|---|
|
#18+
статья устарела, галочку поставили, в combobox с роусорсом по этому справочнику она соответственно не попадет - для ВВОДА так и нужно, устарела - не выбирать! А как быть с ПОКАЗОМ СТАРЫХ записей? ведь если не попадет в роусорс, на месте этой записи будет пусто... Я еще раз выскажу одну и ту же мысль. Комбобокс фигово пригоден для выбора товара из большого списка номенклатуры (>10000). Поэтому для отображения в составе уже существующего документа - обычный текстбокс. Для выбора - специально заточенную под это дело формочку. И не будет никаких проблем. В этой форме уже и показываешь хоть устаревшие, хоть все товары, хоть складские остатки, хоть фамилию прабабушки производителя. --------------------------------------------------------------- Еще одно решение, но с жуткой денормализацией. Хранить в составе документа не только ID-шник, но и текст (наименование). В формочке - комбобокс со списком, причем в списке только наименования , без ID-шников, число столбцов = 1, bound column = наименование, ограничиться списком = нет. В источнике строк для списка наложить условие - неустаревший товар. Таким образом в выпавшем списке будут отображаться только актуальные товары (наименования), а уже внесенные неактуальные преспокойно видны в обычном режиме (в свернутом состоянии). Ну и AfterUpdate этого поля отслеживать, дабы денормализацию блюсти. Мне такое решение ни фига не симпатично, но иногда имеет место быть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2003, 21:39 |
|
||
|
Сравочник - устаревающие значения
|
|||
|---|---|---|---|
|
#18+
Alexus12статья устарела, галочку поставили, в combobox с роусорсом по этому справочнику она соответственно не попадет - для ВВОДА так и нужно, устарела - не выбирать! А как быть с ПОКАЗОМ СТАРЫХ записей? ведь если не попадет в роусорс, на месте этой записи будет пусто... Можно ещё вот так сделать: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2003, 01:32 |
|
||
|
Сравочник - устаревающие значения
|
|||
|---|---|---|---|
|
#18+
А нельзя ли применять профилактические меры к порождению двойников... вот я например, лучше бы не дал оператору вводить еще раз позицию, чем потом писать миханизмы "слияния"... Можно просто на этапе ввода проверять наличие такой позиции или "почти такой", т.е. очень похожей и поругаться типа вот "коробка спичек" уже была, а вы вот еще раз пытаетесь ввести "каробка спичяк" (и список похожих наименований, из которых юзер выберет, что надо или все-таки добавит свое) как установить сходство с тем, что это двойник - это чисто технический вопрос..., могу посоветовать несколько функций по этому поводу, сам написал dlll для MS SQL я, которая выполняет эту проверку строк, можно без труда и на VBA реализовать .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2003, 14:29 |
|
||
|
Сравочник - устаревающие значения
|
|||
|---|---|---|---|
|
#18+
2 Sinner: На это давно ответил Нуф: НуфПопытка реализовать синтаксический анализ добавляемых в справочник позиций на предмет повторени провалилась с треском... Слишком уж у операторов фантазия большая в плане "называния", и это не смотря на наличие внутрифирменных требований к наименованиям. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2003, 14:33 |
|
||
|
Сравочник - устаревающие значения
|
|||
|---|---|---|---|
|
#18+
актуальность справочников штука серьезная... ладно бы казалось есть при написании бд некотрые вещи динамически изменяемые по времени каталог товаров, список сотрудников тут все ясно для такого справочника завязка на актуальность по времени Код: plaintext написали и забыли про эту проблему но вот если изначально при разработке базы не предусмотрели что и название собственной компании может меняться по времени и структура его подразделений а на это завязан весь клиентский код и все остальное то вот тут ждут трудности другого порядка как добавить в базу данных пару полей даты актуальности чтоб не переписывать весь имеющийся код.... пока решаю такого рода проблемы написанием серверных функций. типа Код: plaintext вот еще яркий пример из области кадров у каждого сотрудника есть два поля дата приема и дата увольнения сразу была сделана функция расчет стажа в компании на дату и весь остальной и серверный и клиентскй код ссылался на серверную функцию Код: plaintext 1. 2. 3. потом оказалось что некоторые сотрудники могут быть уволены и через некоторое время приняты снова, их стаж считать с учетом этого пробела. при этом для корректировки базы (и клиентского кода и хранимок) оказалось достаточным добавить табличку периоды увольнений для сотрудников и добавить в существующую серверную функцию немного кода. Код: plaintext 1. 2. 3. 4. 5. безусловно универсализация тоже имеет свои недостатки, но тем не менее рекомендую именно такой подход для счастливых обладателей MSSQL2000 и аналогичных по возможностям серверов. PS : Мне очень интересно выслушать другие мнения и подходы к данной проблеме, в частности с приближающимся новым годом и ожидаемыми новыми идеями руководства в связи с этим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2003, 17:15 |
|
||
|
Сравочник - устаревающие значения
|
|||
|---|---|---|---|
|
#18+
Спасибо всем откликающимся! >ВС:А в показе старых записей просто не учитывать поле "Актуально". Очень удобно. >Нуф-Нуф: Т.е. если у тебя форма в режиме "Только Актуальные", Тады нада как-то отделять старые от новых?..... А как? 8() Вчера была актуальной, сегодня устарела эта позиция в справочнике, завтра - другая, и чито? Дату устаревания вести?.. > ЛП: Я еще раз выскажу одну и ту же мысль. Комбобокс фигово пригоден для выбора товара и Да, именно так. Но и юзер при просмотре должен видеть в записи какую-то ценную инфо вместо ID, правда? Легче всего огранизовать Lookup наименования по ID через комбобокс Или денормализовать и хранить рядом с ID для внутренних нужд его текстовое отображение для нужд показа? То есть второе решение вижу, а до первого не догоняю (((( И еще вопрос по универсальной форме для выбора: кто пользуется - как реализована? переключением иссточника данных на запрос, который во "всегда одинаковом" виде выводит ей разные справочники? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2003, 11:47 |
|
||
|
Сравочник - устаревающие значения
|
|||
|---|---|---|---|
|
#18+
SinnerА нельзя ли применять профилактические меры к порождению двойников... вот я например, лучше бы не дал оператору вводить еще раз позицию, чем потом писать миханизмы "слияния"... интересная тема, достойная вынесения в отдельный топик. ?? у меня есть VB функция сравнивающая два названия при любых очепятках и дающая на выходе число - степень схожести фраз на основе алгоритма число совпадающих подряд букв - степень числа 2, количество совпадающих блоков - сумма записываем степень похожести в таблицу и сортируем в обратном порядке находит невероятные комбинации )) один минус при таблице в 1000 записей и длине боле 25 букв поиск более 10 сек. думаю над тем как бы в хранимку запихнуть алгоритм и может напрячь на это дело полнотекстовый поиск чтоб быстро искало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2003, 12:22 |
|
||
|
Сравочник - устаревающие значения
|
|||
|---|---|---|---|
|
#18+
Когда дело дойдет до практики и за работу (например: по заколачиванию накладных) возьмутся реальные тётеньки-операторы без специального филологического образования и структурированного мышления - см. замечание Нуф-Нуфа ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2003, 12:58 |
|
||
|
Сравочник - устаревающие значения
|
|||
|---|---|---|---|
|
#18+
2 АлексейК Но и юзер при просмотре должен видеть в записи какую-то ценную инфо вместо ID, правда? Истинная правда. Пусть видит наименование (например). Легче всего огранизовать Lookup наименования по ID через комбобокс Истинная неправда. Отображать текстовое поле (наименование) проще всего отображать через в обычном текстбоксе. Комбобокс нужен для выбора , но, как я уже устал повторять, именно для выбора он и неудобен - в случае большого списка. То есть второе решение вижу, а до первого не догоняю (((( А чего не догоняешь? Как джойн на сервере сделать, наименование в виде текста на клиент передать и на клиенте в текстбоксе отобразить? И будет тебе отображение товара вне зависимости от того, устаревший он или нет. А выбор - через спец.форму, и вот там уже отсеивай как хочешь. А нельзя ли применять профилактические меры к порождению двойников... Можно и даже нужно. Самая главная профилактическая мера - недопущение тетенек-операторов до ведения номенклатурных справочников. Не их это дело - новые позиции заводить. Их дело уже имеющиеся позиции приходовать/отгружать. А за корректное ведение ном.спр. должнен отвечать отдельный человек. Причем отвечать он должен своими зубами. Тогда и "двойников" не будет. По крайней мере не больше 32 двойников. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2003, 13:36 |
|
||
|
Сравочник - устаревающие значения
|
|||
|---|---|---|---|
|
#18+
Лох>недопущение тетенек-операторов до ведения номенклатурных справочников Иосиф Виссарионович сказал как-то кому-то из писателей "Другого народа у меня для вас нет, товарищ ..." Ну и хде взять других тётенек? Самому что-ли за ввод садиться? Или всех на курсы отправлять (зубы заранее вставные делать?) Профилактика конечно должна быть, чтобы не было эпидемий, но если ее довести до абсурда, то дети тоже нарождаться не будут. И если софт предполагается использовать в полевых условиях, но он должен содержать в себе возможности майнстрим обойти (завести-таки номенклатуру на месте), но и последствия чтоб разгребались достаточно легко. А это уже - проектировщики софта должны обеспечить. ИМХО ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2003, 14:08 |
|
||
|
Сравочник - устаревающие значения
|
|||
|---|---|---|---|
|
#18+
2 Лифчик Как ты себе все это представляешь? Я вот по опыту работы в нескольких торгашеских конторах могу сказать, что прежде чем расширять ассортимент - куча людей сидит и занимается анализом. Изучают спрос, изучают предложения, изучают конкурентов, определяют, можно ли выдергивать средства из под уже проверенных товаров, хватит ли места на складе и т.д. и т.п. Долго чешут репу и выносят вердикт - "Надо брать, будем торговать" или "Да пошли они со своей херней куда подальше" Оказывается это все от лукавого. Весь этот непростой механизм можно заменить одной тетенькой-оператором, которая возьмет и оприходует грузовик чугуниевых презервативов. И будет потом фирма по продаже детских колясок эти чугуниевые презервативы давать в качестве бесплатного подарка каждому купившему детскую коляску. Полевые условия? Тетенька заблудилась в своем собственном прайсе? Да пусть позвонит в офис, ей там скажут "Долбое..на лесная, это же находится в группе такой-то на третьей снизу строчке". А то назаводят новых позиций блин... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2003, 14:25 |
|
||
|
Сравочник - устаревающие значения
|
|||
|---|---|---|---|
|
#18+
Лох, все правильно с точки зрения внутрикорпоративного развития. Но я даю другой пример. Ты - софтверная фирма с далекоидущими намерениями по контролю за информацией на рынке. Сейчас много таких фирм в каждой отрасли пытаются впарить свой программный продукт "склад-розница" мелким торговцам, чтобы они в едином формате (желательно - на основании одного справочника) давали свои предложения. Т.е. чтобы у всех них Чугунный презерватив назывался именно чугунным презервативом и никак иначе. Но если ты свой прогр.продукт впаришь клиенту со словами: "А если вдруг на рынке появятся чугунные през-вы фасонные с графитовым лубрикантом, то вы должны позвонить в наш кал-центр, чтобы мы сами завели и прислали вам код новой позиции" - то обычно таких "автоматизаторов" посылают по известным адресам. Или софт берут, но справочник заполняют как хотят и они у конечных мелких клиентов со временем расходятся, плодятся дубли и прочее-прочее так, что потом собрать весь этот массив информации (расставить соответствие, т.е. подвести под единый справочник) становится проблемой. Вот поэтому я и привел (несколькими постами выше) историю, как мы вели общий справочник на несколько десятков розничных продавцов, не особенно стесняя их телодвижения по поводу заведения новой номенклатуры. И человек, следящий за новой номенклатурой как раз у нас и сидел (а не в штате клиента) - но в целом софт давал конечному пользователю достаточно гибкости. Вопросы, конечно, были,но тогда уже запускался итерационный процесс и мы были в 90% правы. А большинство замен (там где элементарные грамматические ошибки и дубли исправлялись) клиенты и не замечали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2003, 15:25 |
|
||
|
Сравочник - устаревающие значения
|
|||
|---|---|---|---|
|
#18+
АлексейК>один минус при таблице в 1000 записей и длине боле 25 букв поиск более 10 сек. А вот этот минус все плюсы забивает, если речь идет о работе в реальном времени. В бытность свою в аптеке отметил - приходуется в день 10-15 накладных всего 100-200 позиций. Если в каждую включить 10 сек. на проверку дубля - это кранты. Кроме того, полный справочник аптечной номенклатуры 3 года назад тянул на 30000 наименований. Что сейчас - трудно представить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2003, 15:49 |
|
||
|
Сравочник - устаревающие значения
|
|||
|---|---|---|---|
|
#18+
сделал серверную процедурку(пока без оптимизации быстродействия), которая ищет похожесть по любым частям слова, пока не получилось поиспользовать полнотекстовый поиск так как в нем нет операций сравнения двух полей а только поле и условие. попробую курсором сделать.... пока результат 3сек на медленном серваке для 50000 записей и 39 символов поиска в процедуре ищется название клиента, похожее на параметр, передаваемый в хранимку Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2003, 16:46 |
|
||
|
Сравочник - устаревающие значения
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2003, 20:06 |
|
||
|
Сравочник - устаревающие значения
|
|||
|---|---|---|---|
|
#18+
Мне кааца, алексейК путает 2 задачи: 1. Ведение таблиц актуальных _представлений_ сущностей (то же имя фирмы и реквизиты, или например наименование страны которые с 17-го по 90 было таким-то с 90 по ... - такое-то, и соответственно и выводиться должно на таких-то документах так-то, а на таких-то - так-то). Эта задача решается именно созданием таблиц представлений, которые имеют одну головную запись в таблице сущностей, но несколько (отличающиеся, _может быть_ датами актуальности, а может быть и не отличающиеся - если актуальность прописывается на уровне записи в документе, а не в зависимости от времени). Таблица сущностей может содержать только код "основного представления" в справочнике (+- код "актуального представления"). Таблица представлений - это обычно то, что было "не продуманным справошником" (или справочником одного департамента). Таблица связи может добавляться отдельно (при проблемах с модификацией структуры), а можно добавить в "непродуманный" справошник поле связи с таблицей первичных "сущностей" (каскадно обновляемое). Как правило, таблица сущностей будет использоваться для подсчета сверток (агрегатов) по сущностям (имеющих, несколько представлений) или выводе отфильтрованных записей. При этом придется переписывать фильтры и заново писать подсчеты агрегатов по "основным сущностям" (как правило, агрегаты и фильтры по "представлениям" к этому моменту существуют). В документах же как были ссылки на представления, так и останутся. И заботиться об их актуальности по датам не придется. За исключением процедуры выбора (актуального) текущего представления в новый документ. 2. Ведение справочников, в которых сущности могут задваиваться только по недосмотру или разобщенности (разнесенности в пространстве) данных, и для которых требуются процедуры приведения к нормальному виду и (или) анализа похожести при вводе данных. Если данных в справочники вносится много, то тормоза при вводе не нужны, и анализ дубляжа вновь введеных данных имеет смысл вынести в отдельную процедуру (то же верно и при слиянии/синхронизации данных разнесенных департаментов). Если пополнение справочников редкое - можно подцепит процедуру анализа по умолчанию на ввод. Можно скомбинировать ручной запуск процедуры анализа дублей с авто-анализом по умолчанию (в зависимости от какого-нить флажка формы ввода). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2004, 13:43 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32365218&tid=1677356]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
58ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 367ms |

| 0 / 0 |
