-
> ^-k2-^ © (13.05.08 19:10) [118]
А мы говорим разве о предметке Игоря? Мы говорим вообще о необходимости существования инструментов на уровне приложения для редактирования справочников, в общем случае. Лично я пытаюсь Игоря с его колокольни спихнуть на землю. И однозначно утверждать, что нафиг не нужны формы редактирования словарей в приложениях, бо есть например Access, открыл mdb и изменил чего то - это как минимум мыслить однобоко.
И вот, кстати, диаметрально противоположный случай. Наша фирма территориально расположена в том же здании, где находится святая святых коммунальных платежей, ИРС (информационно-расчетная служба) где'же и центральная БД, и мы'же обслуживаем как БД так и самое технику, конечно у нас в программе КП нет никаких намеков на редактирование словарей, а нафик оно не надо, мы этим сами занимаемся, по первому требованию начальства ИРС. Вот когда мы будем прекращать столь близкие отношения с ИРС, вот тогда придется вводить это дело в приложение в обязательном порядке.
-
Во что override or overload превратились к 100 посту.
-
Palladin © (13.05.08 19:16) [120] "И однозначно утверждать, что нафиг не нужны формы редактирования словарей в приложениях, бо есть например Access, открыл mdb и изменил чего то - это как минимум мыслить однобоко." просто для интересу - в каком посте он такое утверждал? или ещё кто-нибудь утверждал, а то я не с начала :) я естественно про первую часть цитаты
-
> ^-k2-^ © (13.05.08 19:20) [122]
все началось с: Игорь Шевченко © (13.05.08 12:50) [42] и в: Игорь Шевченко © (13.05.08 14:04) [49]
> Делать работу со справочниками в программе вместо того, чтобы заполнять их один раз, стоит только в единственном случае - когда данные в справочниках меняются примерно с той же интенсивностью, что и данные, в которых эти справочники используются.
Его колокольня с мыслями о фиксированности словарей. Он это утверждение и защищает всю ветку, ссылаясь на, то что вполне можно зазказчик может использовать какие либо сторонние инструменты если вдруг произойдет изменение...
-
> Anatoly Podgoretsky © (13.05.08 19:13) [119]
> Там ты ссылаешься на ИШ [62]
На [62] я ссылался в [66]. И где в [66] сказано про отдельное приложение для редактирования справочников?
> но там Игорь ничего подобного не предлагал.
Именно это Игорь в [62] и предлагал. Инструкция с картинками - она же сама по себе не выполнится, к ней программа нужна.
-
Юрий ты и сам бы мог посмотреть, а не заставлять меня копировать
> И поставить ему дополнительную программу, которая этот SQL выполнять будет?
-
"Игорь Шевченко © (13.05.08 12:50) [42] Любой "гибкий справочник" подлежит безусловному сожжению в топке
Игорь Шевченко © (13.05.08 14:04) [49] User1 (13.05.08 13:49) [48] > Как тогда лучше реализовать справочник n таблиц ? Наверное как лучше реализовать интерфейс к n справочникам, находящимся в n таблицах ? Воспользоваться механизмом наследования, например, сделав базовую функциональность в форме-предке, а работу с конкретными справочниками вынести в наследников этой формы, если есть различия. Ну и разумеется на каждый справочник свой DataSet, в датамодуле или в одном кучу или в нескольких, по вкусу. Соответственно, Grid и DataSource будут находиться в предке. Один раз. Но это чаще всего идиотский интерфейс, сделанный, потому что "по другому не умеем". Делать работу со справочниками в программе вместо того, чтобы заполнять их один раз, стоит только в единственном случае - когда данные в справочниках меняются примерно с той же интенсивностью, что и данные, в которых эти справочники используются. Размер программы - это последнее, на что стоит обращать внимание при ее разработке."
сорри сразу за оверквоттинг, дяденьки модераторы не бейте
по [42] все таки встраивать в свою программу средство, подобное по гибкости тоад или пл/сиквел навигатор - смысл? я лично толкую так
по [49] ну по большому счету действительно в таких обобщенных справочниках может работать человек, имеющий представление о структуре базы
-
> Anatoly Podgoretsky © (13.05.08 19:39) [125]
Какую? вроде "Конфигуратор Программы"? Кому, пользователю? Какому? На какую машину? Отпуск, декрет, загул и увольнение... всем? смысл? одному, но бегать убирать приложение-конфигуратор с машины и ставить на другую? боже упаси... "Конфигуратор Программы" должен отвечать за ведение пользователей и раздачу подобных прав на редактирование словаря...
-
> Anatoly Podgoretsky © (13.05.08 19:39) [125]
А я и посмотрел.
Правильно сказано было. Если Игорь предлагает заставить юзера самого писать SQL для обновления справочников - значит, он предлагает поставить юзеру "дополнительную программу, которая этот SQL выполнять будет". Поскольку сам по себе этот SQL, очевидно, не выполнится.
Так что это как раз предложил Игорь. Я же об этом лишь написал, но "написал" <> "предложил". Нес па?
-
Если и правда Игорь в течении ветки ушел от жесткой позиции ненужности функционала по редактированию словарей (не справочников) и использования SQL (в картинках для пользователя) к стороннему (а стороннему ли?) приложению выполняющему функционал конфигуратора словарей, тогда конечно я забираю свои слова про бумагу топором обратно и приношу извинения, однако [127] это не отменяет
-
Palladin © (13.05.08 19:45) [127] а конфигуратор разве не может быть в составе программы, только права и соотвественно видимость в зависимости от роли? зачем бегать ставить. передается только юзер/пароль
-
> ^-k2-^ © (13.05.08 19:56) [130]
а я о чем толкую? я о правах пользователей и толкую, для обычных функционал основного приложения по редактированию не доступен, меняется группа, он все видит и имеет право... однако это никакое не стороннее приложение, это все тоже основное приложение
-
Palladin © (13.05.08 18:06) [116]
> ты не видел 1С, как я тебе завидую...
Ты можешь еще позавидовать - я не автоматизировал бухучет, не писал программы "Склад", "Кадры" и т.п. :)
Palladin © (13.05.08 18:49) [117]
> либо у вас тупые заказчики, либо у них нет выбора... у наших > есть...
Выбора у наших заказчиков кстати нет, это ты прав :)
Но из этого не следует, что мы их, бедных, припираем к стенке, заставляем учить SQL и прочие страшные слова наизусть.
Как отметила Катя, в ряде случаев при изменении содержимого "словаря" может потребовать изменение функциональности (тут правда и insert-ом не обойдешься).
> "ножницы не нужны, вот топор, ложите бумагу на топоронепробиваемую > поверхность и аккуратно по разрезу наносите удар, при необходимости > повторить",
Если утрировать до бесконечности, то да, что-то есть. Одни из путей - использование уже написаного инструментария, вместо повторения его функциональности.
Юрий Зотов © (13.05.08 18:06) [115]
> Игорь, страшную тайну тебе открою - дельфишная форма считать > умеет еще лучше и быстрее. Притом что хошь - хоть тройные > интегралы... ексель нервно курит в сторонке.
Нет, Юра, без программиста она нифига считать не умеет. А Excel умеет, пусть не тройные интегралы, пусть поскромнее, но умеет. Вот например сумму, которую мне надо платить за квартиру и прочие там...киловатты он вполне считает без всяких дельфийских форм. Более того, в MS (точнее, в Sun) и слыхом не слыхивали что Игорь Шевченко из далекой России, где по улицам бродят медведи, будет использовать их продукт для такой вот цели. Как обычный, кстате, юзер.
-
> Выбора у наших заказчиков кстати нет, это ты прав :)
так и знал, вопросов больше не имею, просто и ты меня пойми ) в таких условиях не заставишь выполнять ни SQL инструкции, ни шайку сетевых администраторов в купе с эникейщиками бегать переставлять "стороннее приложение" с места на место, просто (может по звонку, или при обновлении) приходит наш человек, ему знать про БД и словари не нужно, у него всегда инструмент для администрирования пользователей аппсервера на флешке, у него есть все данные для соединения с серевером, приходит в любое место, соединяется, переназначает права/заливает обновления/еще чего нибудь делает уходит, удобно... всего один человек, а столько делает )
-
в справочниках обычно много чего заложено :) в том числе и форинкеи на другие справочники, много поможет если редактировать такой справочник будет человек, не имеющий представления о базе? ну вот справочник:
CREATE TABLE STOCK_EXCHANGE ( SE_CODE VARCHAR2(3 BYTE) NOT NULL, SE_DESCR VARCHAR2(20 BYTE) NOT NULL, SE_STD_VAL_DAY NUMBER(2) NOT NULL, SE_CLT_NAME VARCHAR2(10 BYTE) NOT NULL, SE_CCY_CODE VARCHAR2(3 BYTE) NOT NULL, SE_PS_CODE VARCHAR2(20 BYTE), SE_INT_CODE VARCHAR2(240 BYTE), SE_SHORT_NAME VARCHAR2(30 BYTE), SE_BIRG VARCHAR2(1 BYTE), SE_SE_CODE VARCHAR2(3 BYTE), SE_TR_CODE VARCHAR2(3 BYTE), SE_DEPO_CODE_FOND VARCHAR2(3 BYTE), SE_DEPO_CODE_CL VARCHAR2(3 BYTE), SE_AVT_FOND VARCHAR2(1 BYTE), SE_AVT_CL VARCHAR2(1 BYTE), SE_CR_CODE NUMBER(3), SE_SSE_CODE VARCHAR2(240 BYTE), SE_PP_NUMBER VARCHAR2(20 BYTE) ) TABLESPACE USERS PCTUSED 0 PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 128K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 BUFFER_POOL DEFAULT ) LOGGING NOCACHE NOPARALLEL; CREATE UNIQUE INDEX SE_PK ON STOCK_EXCHANGE (SE_CODE) LOGGING TABLESPACE USERS PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 128K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 BUFFER_POOL DEFAULT ) NOPARALLEL; CREATE UNIQUE INDEX SE_UK ON STOCK_EXCHANGE (SE_INT_CODE) LOGGING TABLESPACE USERS PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 128K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 BUFFER_POOL DEFAULT ) NOPARALLEL; / триггеры почикано / CREATE SYNONYM GDO.STOCK_EXCHANGE_BK FOR STOCK_EXCHANGE; CREATE SYNONYM MMVB_40310.STOCK_EXCHANGE FOR STOCK_EXCHANGE; CREATE SYNONYM SSERGEY.STOCK_EXCHANGE FOR STOCK_EXCHANGE; ALTER TABLE STOCK_EXCHANGE ADD ( CONSTRAINT SE_PK PRIMARY KEY (SE_CODE) USING INDEX TABLESPACE USERS PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 128K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 )); ALTER TABLE STOCK_EXCHANGE ADD ( CONSTRAINT SE_UK UNIQUE (SE_INT_CODE) USING INDEX TABLESPACE USERS PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 128K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 )); ALTER TABLE STOCK_EXCHANGE ADD ( CONSTRAINT SE_CCY_FK FOREIGN KEY (SE_CCY_CODE) REFERENCES CURRENCY (CCY_CODE)); ALTER TABLE STOCK_EXCHANGE ADD ( CONSTRAINT SE_CLT_FK FOREIGN KEY (SE_CLT_NAME) REFERENCES CALENDAR_NAME (CLT_NAME)); ALTER TABLE STOCK_EXCHANGE ADD ( CONSTRAINT SE_CR_FK FOREIGN KEY (SE_CR_CODE) REFERENCES CARRIER (CR_CODE)); ALTER TABLE STOCK_EXCHANGE ADD ( CONSTRAINT SE_DEPO_FK FOREIGN KEY (SE_DEPO_CODE_FOND) REFERENCES DEPOS (DEPO_CODE)); ALTER TABLE STOCK_EXCHANGE ADD ( CONSTRAINT SE_DEPO_FK2 FOREIGN KEY (SE_DEPO_CODE_CL) REFERENCES DEPOS (DEPO_CODE)); ALTER TABLE STOCK_EXCHANGE ADD ( CONSTRAINT SE_PS_FK FOREIGN KEY (SE_PS_CODE) REFERENCES PERSON (PS_CODE)); ALTER TABLE STOCK_EXCHANGE ADD ( CONSTRAINT SE_SE_FK FOREIGN KEY (SE_SE_CODE) REFERENCES STOCK_EXCHANGE (SE_CODE)); ALTER TABLE STOCK_EXCHANGE ADD ( CONSTRAINT SE_TR_FK FOREIGN KEY (SE_TR_CODE) REFERENCES TRANSACTIONS (TR_CODE)); GRANT SELECT ON STOCK_EXCHANGE TO GDO; GRANT SELECT ON STOCK_EXCHANGE TO FRONT; GRANT DELETE, INSERT, SELECT, UPDATE ON STOCK_EXCHANGE TO BOWN; ну дали мы твоей блондинке bown, дали твое средство для справочников, человек реально утонет пока будет по всем справочникам рассекать, или будет удивляться, почему у нужной персоны недоступна площадка, ведь она завела, а то што не привязала персону все равно прийдется в картинках рассказывать
-
> Как отметила Катя, в ряде случаев при изменении содержимого > "словаря" может потребовать изменение функциональности (тут > правда и insert-ом не обойдешься).
такое, кстати, и у нас встречается... но это куда больше исключение, чем правило...
-
> ^-k2-^ © (13.05.08 20:13) [134]
:)
Дополнительно, в метафизических терминах могу рассказать про справочник населенных пунктов. Он - справочник, отображаемая в терминах данных сущность, которую он представляет, это населенный пункт. Однако не все так просто. Во первых, населенный пункт принадлежит стране. В дело вступает словарь стран. Во вторых он может принадлежать, а может и не принадлежать, федеральной единице (в России: области, краю, республике). В состав справочника входит справочник "Федереальные единицы", а справочник он потому, что Федеральная единица в свою очередь принадлежит стране. В третьих, он может принадлежать, а может и не принадлежать, локальной единице (в России в подавляющем большинстве - район). Локальная единица - тоже справочник со ссылкой на федеральную единицу (необязательно) и страну (обязательно). Которая может не принадлежать федеральной единице, а может и не принадлежать, но всегда принадлежит стране. В третьих справочник меняет состав в месяц раз 10-15. Хотя может 3 месяца не меняться, пока товарищ из удмуртии, из неизведанного белого пятна с двумя домами носящими гордое название - станица, не приедет. Или какая нибудь деревня/аул/кишлак имя не поменяет.
Но список населенных пунктов - справочник.
-
Palladin © (13.05.08 20:08) [133]
> так и знал, вопросов больше не имею, просто и ты меня пойми > )
Так я почти с самого начала говорил, что марксизм не догма, а руководство к действию :)
В постах [49] и [59] в особенности.
Если ты обратил внимание, то в посте [49] была такая фраза "чаще всего получается идиотский интерфейс". То есть, не всегда и не везде, а то, что чаще - ну такова се ля ви.
А в посте [59] - "В разных случаях по-разному, очевидно. Какой юзер, какие данные, и т.д."
-
Palladin © (13.05.08 20:26) [136]
> В третьих справочник меняет состав в месяц раз 10-15. Хотя > может 3 месяца не меняться, пока товарищ из удмуртии, из > неизведанного белого пятна с двумя домами носящими гордое > название - станица, не приедет. Или какая нибудь деревня/аул/кишлак > имя не поменяет
В четвертых, это уже не справочник, а самые настоящие данные :)
-
^-k2-^ © (13.05.08 20:13) [134]
> много поможет если редактировать такой справочник будет человек, не > имеющий представления о базе?
Очень много. Юзеру и не нужно знать, что, куда и как пишется. Он должен работать в СВОИХ профессиональных терминах, а не в спецтерминах БД. И вообще не обязан знать слов "таблица" или "поле". А на форме ввода возле каждого поля ввода естественным образом стоит понятное ЮЗЕРУ наименование этого поля (например ФАМИЛИЯ, а не LAST_NAME). Благодаря чему справочник легко и просто редактируется юзером без всякого знания БД.
Но если заставить юзера работать с SQL через "клиента общего назначения" - вот тогда он уж точно без знания конкретной БД попухнет. В частности, замучается ручками ссылочные поля прописывать.
> будет удивляться, почему у нужной персоны недоступна площадка, ведь > она завела, а то што не привязала персону все равно прийдется в > картинках рассказывать
А не придется. Форма ввода обязана перед сохранением данных проверить их и явную лажу в БД не писать, а выдать внятное сообщение. Это раз.
Кроме того, юзер обязан знать СВОЮ предметную область - в том числе, обязан знать, что означают понятия "площадка" и "персона". Поэтому обязан понимать, что ежели площадка персоне не назначена, то для этой персоны она и недоступна. Это два.
Но если заставить юзера работать с SQL через "клиента общего назначения" - вот тогда он уж точно замучается связки "многие ко многим" (персоны-площадки) ручками заполнять.
|