Об информационной системе лесного хозяйства

Обсуждения, посвящённые реалиям и продолжающемуся реформированию управления лесами и лесных отношений

Модераторы: forester66, Модераторы

Сообщение ДжуликоБандитто » Пн дек 12, 2005 5:42 am

А мне вот чего странно - такое впечатление, что г.Титов никогда отродясь не был ни на одном форуме по программированию.
г.Титов! Сходите куда-нибудь на нормальный форум, представьте свой код, спросите чего-нить у знающих перцев, пусть вас накуй пошлют пару десятков раз... :lol: А хотите в отраслевой системе вариться - кнечно Ваше дело, только не надо тогда спрашивать, типа "Может укажите пальчиком". Нормальные кодеры за такое на fickyou.com посылают без разговоров/комментариев. Уж поверьте.
Так что с этикой тут всё впорядке.
А вот строить предположения по никам - вот это не по сетевой этике.

2Лесник - ну ты и оторва, наверное, в реале :lol: Прикольно, наверное, было б с таким монстром рюмку чаю выпить :P :twisted:
Битиё определяет сознание.
ДжуликоБандитто
Активный пользователь
 
Сообщения: 246
Зарегистрирован: Пт сен 24, 2004 7:20 am
Откуда: От верблюда

Сообщение ДжуликоБандитто » Пн дек 12, 2005 10:57 am

Во, поговорим предметно? :lol:
Итак, как Вы знаете, ANSI SQL состоит из DDL ( Язык Определения Данных ) и DML (Язык Манипулирования Данными).
И когда в файле RotDir/Base_BD/XXYYZZ.TAB я читаю:
Titov писал(а):!table
!version 300
!charset WindowsCyrillic

Definition Table
Type NATIVE Charset "WindowsCyrillic"
Fields 249
Muk Decimal (8, 0) ;
Sri Decimal (2, 0) ;
Mu Decimal (2, 0) ;
Gir Decimal (2, 0) ;
Mk Decimal (6, 0) ;
Ud Decimal (2, 0) ;
Kv Decimal (4, 0) ;
Admr Decimal (3, 0) ;
Lesb Decimal (4, 0) ;
Rel Decimal (1, 0) ;
Fz Decimal (1, 0) ;
Aktm Decimal (2, 0) ;
Mkim Decimal (2, 0) ;
Eksp Decimal (2, 0) ;
Sknr Decimal (3, 0) ;
Pl Decimal (7, 1) ;
Zk Decimal (4, 0) ;
Zkg Decimal (2, 0) ;
Ukat Decimal (1, 0) ;
Skp Decimal (3, 0) ;
Eks Char (2) ;
Poll Decimal (2, 0) ;
Aujl Decimal (4, 0) ;
Err Decimal (1, 0) ;
Laip Decimal (1, 0) ;
Up1 Decimal (4, 0) ;
Up1p Decimal (3, 0) ;
Ptk1 Decimal (2, 0) ;
Up2 Decimal (4, 0) ;
Ptk2 Decimal (2, 0) ;
Up3 Decimal (4, 0) ;
Ptk3 Decimal (2, 0) ;
Mr Char (6) ;
Vmr Char (6) ;
Bon Char (2) ;
Mtip Char (5) ;
Dtg Char (5) ;
Kmet Decimal (2, 0) ;
Ksk Decimal (4, 0) ;
Pksk Decimal (4, 0) ;
Dp Decimal (2, 0) ;
Suvl Char (2) ;
Svtb Decimal (3, 0) ;
Svtl Decimal (3, 0) ;
Sux Decimal (3, 0) ;
Ne2a Decimal (1, 0) ;
Agr Decimal (1, 0) ;
Stur Decimal (7, 0) ;
Usek Decimal (3, 0) ;
Kak Decimal (2, 0) ;
Akl Decimal (2, 0) ;
Ard1 Decimal (2, 0) ;
Kf1 Decimal (2, 0) ;
Mr1 Char (6) ;
Amz1 Decimal (3, 0) ;
H1 Decimal (5, 1) ;
D1 Decimal (3, 0) ;
Psp1 Decimal (1, 0) ;
Kil1 Decimal (1, 0) ;
Skal1 Decimal (5, 1) ;
Sps1 Decimal (4, 0) ;
Tur1h1 Decimal (4, 0) ;
Ard2 Decimal (2, 0) ;
Kf2 Decimal (2, 0) ;
Mr2 Char (6) ;
Amz2 Decimal (3, 0) ;
H2 Decimal (5, 1) ;
D2 Decimal (3, 0) ;
Psp2 Decimal (1, 0) ;
Kil2 Decimal (1, 0) ;
Skal2 Decimal (5, 1) ;
Sps2 Decimal (4, 0) ;
Tur1h2 Decimal (4, 0) ;
Ard3 Decimal (2, 0) ;
Kf3 Decimal (2, 0) ;
Mr3 Char (6) ;
Amz3 Decimal (3, 0) ;
H3 Decimal (5, 1) ;
D3 Decimal (3, 0) ;
Psp3 Decimal (1, 0) ;
Kil3 Decimal (1, 0) ;
Skal3 Decimal (5, 1) ;
Sps3 Decimal (4, 0) ;
Tur1h3 Decimal (4, 0) ;
Ard4 Decimal (2, 0) ;
Kf4 Decimal (2, 0) ;
Mr4 Char (6) ;
Amz4 Decimal (3, 0) ;
H4 Decimal (5, 1) ;
D4 Decimal (3, 0) ;
Psp4 Decimal (1, 0) ;
Kil4 Decimal (1, 0) ;
Skal4 Decimal (5, 1) ;
Sps4 Decimal (4, 0) ;
Tur1h4 Decimal (4, 0) ;
Ard5 Decimal (2, 0) ;
Kf5 Decimal (2, 0) ;
Mr5 Char (6) ;
Amz5 Decimal (3, 0) ;
H5 Decimal (5, 1) ;
D5 Decimal (3, 0) ;
Psp5 Decimal (1, 0) ;
Kil5 Decimal (1, 0) ;
Skal5 Decimal (5, 1) ;
Sps5 Decimal (4, 0) ;
Tur1h5 Decimal (4, 0) ;
Ard6 Decimal (2, 0) ;
Kf6 Decimal (2, 0) ;
Mr6 Char (6) ;
Amz6 Decimal (3, 0) ;
H6 Decimal (5, 1) ;
D6 Decimal (3, 0) ;
Psp6 Decimal (1, 0) ;
Kil6 Decimal (1, 0) ;
Skal6 Decimal (5, 1) ;
Sps6 Decimal (4, 0) ;
Tur1h6 Decimal (4, 0) ;
Ard7 Decimal (2, 0) ;
Kf7 Decimal (2, 0) ;
Mr7 Char (6) ;
Amz7 Decimal (3, 0) ;
H7 Decimal (5, 1) ;
D7 Decimal (3, 0) ;
Psp7 Decimal (1, 0) ;
Kil7 Decimal (1, 0) ;
Skal7 Decimal (5, 1) ;
Sps7 Decimal (4, 0) ;
Tur1h7 Decimal (4, 0) ;
Ard8 Decimal (2, 0) ;
Kf8 Decimal (2, 0) ;
Mr8 Char (6) ;
Amz8 Decimal (3, 0) ;
H8 Decimal (5, 1) ;
D8 Decimal (3, 0) ;
Psp8 Decimal (1, 0) ;
Kil8 Decimal (1, 0) ;
Skal8 Decimal (5, 1) ;
Sps8 Decimal (4, 0) ;
Tur1h8 Decimal (4, 0) ;
Ard9 Decimal (2, 0) ;
Kf9 Decimal (2, 0) ;
Mr9 Char (6) ;
Amz9 Decimal (3, 0) ;
H9 Decimal (5, 1) ;
D9 Decimal (3, 0) ;
Psp9 Decimal (1, 0) ;
Kil9 Decimal (1, 0) ;
Skal9 Decimal (5, 1) ;
Sps9 Decimal (4, 0) ;
Tur1h9 Decimal (4, 0) ;
Ard10 Decimal (2, 0) ;
Kf10 Decimal (2, 0) ;
Mr10 Char (6) ;
Amz10 Decimal (3, 0) ;
H10 Decimal (5, 1) ;
D10 Decimal (3, 0) ;
Psp10 Decimal (1, 0) ;
Kil10 Decimal (1, 0) ;
Skal10 Decimal (5, 1) ;
Sps10 Decimal (4, 0) ;
Tur1h10 Decimal (4, 0) ;
Kol31 Decimal (6, 1) ;
H31 Decimal (5, 1) ;
Amz31 Decimal (3, 0) ;
Kf131 Decimal (2, 0) ;
Mr131 Char (6) ;
Kf231 Decimal (2, 0) ;
Mr231 Char (6) ;
Kf331 Decimal (2, 0) ;
Mr331 Char (6) ;
Op31 Decimal (1, 0) ;
Stg32 Decimal (1, 0) ;
Mr132 Char (6) ;
Mr232 Char (6) ;
Mr332 Char (6) ;
God11 Decimal (2, 0) ;
M111 Decimal (4, 0) ;
M113 Decimal (1, 0) ;
M117 Decimal (2, 0) ;
M11p Decimal (2, 0) ;
M118 Decimal (3, 0) ;
M11c Decimal (1, 0) ;
M11z Decimal (2, 0) ;
M1 Decimal (2, 0) ;
Dm11 Char (4) ;
Dm12 Char (6) ;
Dm13 Char (6) ;
Dm14 Char (6) ;
Dm15 Char (6) ;
Dm16 Char (6) ;
Dm17 Char (4) ;
Dm18 Char (5) ;
M2 Decimal (2, 0) ;
Dm21 Char (4) ;
Dm22 Char (6) ;
Dm23 Char (6) ;
Dm24 Char (6) ;
Dm25 Char (6) ;
Dm26 Char (6) ;
Dm27 Char (4) ;
Dm28 Char (5) ;
M3 Decimal (2, 0) ;
Dm31 Char (4) ;
Dm32 Char (6) ;
Dm33 Char (6) ;
Dm34 Char (6) ;
Dm35 Char (6) ;
Dm36 Char (6) ;
Dm37 Char (4) ;
Dm38 Char (5) ;
M4 Decimal (2, 0) ;
Dm41 Char (4) ;
Dm42 Char (6) ;
Dm43 Char (6) ;
Dm44 Char (6) ;
Dm45 Char (6) ;
Dm46 Char (6) ;
Dm47 Char (4) ;
Dm48 Char (5) ;
M5 Decimal (2, 0) ;
Dm51 Char (4) ;
Dm52 Char (6) ;
Dm53 Char (6) ;
Dm54 Char (6) ;
Dm55 Char (6) ;
Dm56 Char (6) ;
Dm57 Char (4) ;
Dm58 Char (5) ;
M6 Decimal (2, 0) ;
Dm61 Char (4) ;
Dm62 Char (6) ;
Dm63 Char (6) ;
Dm64 Char (6) ;
Dm65 Char (6) ;
Dm66 Char (6) ;
Dm67 Char (4) ;
Dm68 Char (5) ;
M7 Decimal (2, 0) ;
Dm71 Char (4) ;
Dm72 Char (6) ;
Dm73 Char (6) ;
Dm74 Char (6) ;
Dm75 Char (6) ;
Dm76 Char (6) ;
Dm77 Char (4) ;
Dm78 Char (5) ;
Kl Char (13) Index 1 ;
Категории_земель Char (35) ;
Исключение_ГЛФ Char (10) ;

И вот я и задумываюсь - а есть ли тут структурирование, индексация и вообще что-то, что отличает базу данных (м.б. реляционную :lol: ) от набора цыфроф.
Меня сильно не интересует - откуда этот кусок DDL, применяется ли он вообще. Меня просто интересовал факт наличия в инсталл-пакете ( :wink: ) подобного куска DDL.
Битиё определяет сознание.
ДжуликоБандитто
Активный пользователь
 
Сообщения: 246
Зарегистрирован: Пт сен 24, 2004 7:20 am
Откуда: От верблюда

Сообщение greshnov » Пн дек 12, 2005 11:40 am

По-моему, это просто описание ЗапСибовской таксационной базы данных или образец для создания мапинфовских табов. Даже корни имен полей "литовские" сохранились.
Я поправил свое сообщение уже после ответа Титова, так что извиняюсь если исказил смысл.
Последний раз редактировалось greshnov Пн дек 12, 2005 11:47 am, всего редактировалось 2 раз(а).
greshnov
Активный пользователь
 
Сообщения: 406
Зарегистрирован: Пн июл 05, 2004 4:41 pm
Откуда: Москва

Сообщение ДжуликоБандитто » Пн дек 12, 2005 11:55 am

Я обещал показать кусок SQL - я его показал.

Так что я ответил на постинг г.Титова? Или как?
г.Титов писал(а):Ёлы-палы ! Я не прошу консультации - я спрашиваю где "совершенно безумные SQL-запросы" ?! Если вы говорите что обнаружили недочет - назовите место, чтобы не быть голословным ! Не надо как обычно "растекаться мыслию по древу" !
Битиё определяет сознание.
ДжуликоБандитто
Активный пользователь
 
Сообщения: 246
Зарегистрирован: Пт сен 24, 2004 7:20 am
Откуда: От верблюда

Сообщение ДжуликоБандитто » Пн дек 12, 2005 12:40 pm

greshnov писал(а):По-моему, это просто описание ЗапСибовской таксационной базы данных или образец для создания мапинфовских табов. Даже корни имен полей "литовские" сохранились.
Я поправил свое сообщение уже после ответа Титова, так что извиняюсь если исказил смысл.

Ну ладно, хоть Вы объясните - чего этот код делает в комплекте поставки ЛесГИС в лесхоз?
Зачем он там вообще - у конечного-то пользователя?
И разве это не есть "совершенно безумный SQL-запрос" (ну, не запрос, кнечно, элемент DDL :oops: Тут я втупил, конечно :lol: )
Битиё определяет сознание.
ДжуликоБандитто
Активный пользователь
 
Сообщения: 246
Зарегистрирован: Пт сен 24, 2004 7:20 am
Откуда: От верблюда

Сообщение ДжуликоБандитто » Пн дек 12, 2005 1:02 pm

Если сегодня вечер вопросов-ответов, то ответте сначала на последние заданные мной вопросы (повторяю):
чего этот код делает в комплекте поставки ЛесГИС в лесхоз?
Зачем он там вообще - у конечного-то пользователя?
И разве это не есть "совершенно безумный SQL-запрос"

А откуда приведённый мной DDL проистекает - мне абсолютно неинтересно. Тем более, если история этого кода длится ~10(!) лет.
Битиё определяет сознание.
ДжуликоБандитто
Активный пользователь
 
Сообщения: 246
Зарегистрирован: Пт сен 24, 2004 7:20 am
Откуда: От верблюда

Сообщение ДжуликоБандитто » Пн дек 12, 2005 1:36 pm

Я наверное тупой, но мне всегда надо сформулировать выводы, хотя бы и промежуточные.
Итак:
Жуткий кусок DDL - это структура основного формата хранения записей в БД. Создан >10 лет назад. Зачем он лежит в инсталл-наборе ( :roll: ) - хз. Для работы - в сущности так вот, в открытом виде - нафиг не нужен. Потребен только в качестве реликта.
Все (в том числе и г.Титов) понимают, что на сегодняшний день - это просто вопиющая отсталость.

И тем не менее г.Титов утверждает, что всё путём, что ему это в работе не мешает!
г.Титов! Вы что тут всех за дураков держите?
Какие могут быть тогда вообще "Может укажите пальчиком"?
Какие могут быть тогда вообще Вам советы, если система в основе своей - ujdyj?

Единственное, что Вам можно сказать - учитесь. И с виноватым видом слушайтесь Ваших старших товарищей.

P.S. Что-то мне подсказывает, что отраслевой подход снова возобладает... :oops:
Битиё определяет сознание.
ДжуликоБандитто
Активный пользователь
 
Сообщения: 246
Зарегистрирован: Пт сен 24, 2004 7:20 am
Откуда: От верблюда

Сообщение greshnov » Пн дек 12, 2005 4:03 pm

Titov писал(а):Это структура нашей таблицы, в которой хранятся таксационные описания выделов. Приведенный файл - шаблон для создания таких таблиц программой. Это то, что все ругают ! :)
Вы что, не в курсе ?! :shock:

"Авторы" этой структуры по сути просто повторили структуру литовского комплекса, добавив номера к повторяющимся полям и превратив иерархическую сишную структуру (записи переменной длины) в структуру 1*1. Само по себе это решение является студенческим. Это то, что может и делает любой ученик, начиная писать свою первую программу.
Поскольку на размер внутренней базы МапИнфо, по крайней мере тогда существовали ограничения по размеру в 256 полей, то максимальное число записей описания насаждения ограничено 10. Это мое предположение. Если были другие соображения, то сам факт, что нужно определить максимальное число полей такого вида - уже постановочный тупик. Я сколько угодно приведу примеров даже по Москве, не говоря о Кавказе или Дальнем Востоке, когда такого запаса по описанию пород недостаточно. У меня были объекты, где дописывать клеточки в стандартных карточках таксации приходилось. А мы помним, что эта система уже неоднократно декларировалась как единая для применения в РФ.
Размер SQL запроса при вытягивании структуры 1*n в 1*1 однозначно увеличивается за счет всевозможных OR и ANDов при разборе записи! Если в нормальной базе из ста записей проверка одного поля на значение требует 100*1=100 операций, то в данной структуре 100*10=1000. Время обработки увеличивается пропорционально. С этим не нужно спорить! Это голая арифметика. Про дополнительные макеты вообще молчу. И т.д. и т.п. ...
Я это написал по принципу, что вспомнил, со своего административного бугорка. Если я сейчас посажу своих программистов за анализ одной только Вашей структуры - они до утра не закончат. Только жалко мне их, крыша поедет.
Знаете, уважаемый Титов, никто не критиковал бы Вас вообще, если бы это было бы Вашим внутренним делом. Но сейчас вот это! (или подобное, неважно) хотят навязать всем!
А что только структуру критикуем, тут как в притче про именитого полководца, спросившего подчиненного почему бой проигран. "У нас было 20 причин. Первая - у нас кончились патроны, ...". "Достаточно" ответил полководец.
greshnov
Активный пользователь
 
Сообщения: 406
Зарегистрирован: Пн июл 05, 2004 4:41 pm
Откуда: Москва

Сообщение ДжуликоБандитто » Вт дек 13, 2005 5:52 am

2greshnov - давным давно на ЕС1036 и у меня в лабе в базовой С-таблице было 18 полей. Препод, только что на тот момент вернувшийся из Марокко, прилюдно облаял меня (студа некомпутерной специальности) так, что я ему до сих пор благодарен :roll:
OR и AND и прочие бинарники - хрен бы с ними - раскладушка у Титова есть, энтузиазма - не занимать. А вот как в такой системе check делать, как триггеры информативные писать - просто ума не приложу. Не использовать? :lol: Похоже так :oops: Да и сами разработчики через полгода не вспомнят, что означают поля их баз с этакими названиями... Уйдёт Титов в Газпром - и вся ЛесГИС по стране заглохнет?

Фиг знает, наверное правда надо прекращать беседу и в Правилах форума писать типа: "до внесения принципиальных изменений на уровне структуры базы данных обсуждение программы ЗапСибЛесПроекта ЛесГИС на forest.ru/forum ЗАПРЕТИТЬ" :roll:
Битиё определяет сознание.
ДжуликоБандитто
Активный пользователь
 
Сообщения: 246
Зарегистрирован: Пт сен 24, 2004 7:20 am
Откуда: От верблюда

Сообщение greshnov » Вт дек 13, 2005 10:35 pm

ДжуликоБандитто писал(а):А вот как в такой системе check делать, как триггеры информативные писать - просто ума не приложу. Не использовать? :lol: Похоже так :oops:

Тут мы вряд ли Вам что подскажем. У нас если юзер неопытный то просто выделяет мышкой нужные ему значения показателей. В это время на закладке опытного пользователя автоматически формируется текст получающегося SQL запроса, а для начальства русскими простыми словами хронология действий записывается. И наоборот, если опытный напишет в своей закладке текст запроса, его визуальное отображение появится на закладке "для чайников". Самые хитрые таким образом "осваивают" SQL. :wink: Названия полей "русские", сокращенные в английской транскрипции. Хотя пользователю они в принципе у нас незачем вообще. Все можно сделать мышкой.
ДжуликоБандитто писал(а):Да и сами разработчики через полгода не вспомнят, что означают поля их баз с этакими названиями...

Да нет, эта "гангрена" на всю жизнь западает. Я же сразу поля узнал, хотя сам с солями уже года 4 не занимался. Это как у уволившегося таксатора, который ходит потом по лесу, гуляет с внуками, а сам "таксирует" по привычке. Я лет пять "таксировал". :D
ДжуликоБандитто писал(а):Уйдёт Титов в Газпром - и вся ЛесГИС по стране заглохнет?

Она заглохнет если предприятие будет добиваться "успеха" вышеописанными мной методами.
greshnov
Активный пользователь
 
Сообщения: 406
Зарегистрирован: Пн июл 05, 2004 4:41 pm
Откуда: Москва

Пред.След.

Вернуться в Лесное хозяйство на современном этапе

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

cron