Конференция "Прочее" » override or overload ?
 
  • Palladin © (13.05.08 19:16) [120]

    > ^-k2-^ ©   (13.05.08 19:10) [118]

    А мы говорим разве о предметке Игоря? Мы говорим вообще о необходимости существования инструментов на уровне приложения для редактирования справочников, в общем случае. Лично я пытаюсь Игоря с его колокольни спихнуть на землю. И однозначно утверждать, что нафиг не нужны формы редактирования словарей в приложениях, бо есть например Access, открыл mdb и изменил чего то - это как минимум мыслить однобоко.

    И вот, кстати, диаметрально противоположный случай. Наша фирма территориально расположена в том же здании, где находится святая святых коммунальных платежей, ИРС (информационно-расчетная служба) где'же и центральная БД, и мы'же обслуживаем как БД так и самое технику, конечно у нас в программе КП нет никаких намеков на редактирование словарей, а нафик оно не надо, мы этим сами занимаемся, по первому требованию начальства ИРС. Вот когда мы будем прекращать столь близкие отношения с ИРС, вот тогда придется вводить это дело в приложение в обязательном порядке.
  • Anatoly Podgoretsky © (13.05.08 19:17) [121]
    Во что override or overload превратились к 100 посту.
  • ^-k2-^ © (13.05.08 19:20) [122]
    Palladin ©   (13.05.08 19:16) [120]
    "И однозначно утверждать, что нафиг не нужны формы редактирования словарей в приложениях, бо есть например Access, открыл mdb и изменил чего то - это как минимум мыслить однобоко."
    просто для интересу - в каком посте он такое утверждал? или ещё кто-нибудь утверждал, а то я не с начала :) я естественно про первую часть цитаты
  • Palladin © (13.05.08 19:27) [123]

    > ^-k2-^ ©   (13.05.08 19:20) [122]

    все началось с:
    Игорь Шевченко ©   (13.05.08 12:50) [42]
    и в:
    Игорь Шевченко ©   (13.05.08 14:04) [49]

    > Делать работу со справочниками в программе вместо того, чтобы заполнять их один раз, стоит только в единственном случае - когда данные в справочниках меняются примерно с той же интенсивностью, что и данные, в которых эти справочники используются.


    Его колокольня с мыслями о фиксированности словарей. Он это утверждение и защищает всю ветку, ссылаясь на, то что вполне можно зазказчик может использовать какие либо сторонние инструменты если вдруг произойдет изменение...
  • Юрий Зотов © (13.05.08 19:30) [124]
    > Anatoly Podgoretsky ©   (13.05.08 19:13) [119]

    > Там ты ссылаешься на ИШ [62]

    На [62] я ссылался в [66]. И где в [66] сказано про отдельное приложение для редактирования справочников?

    > но там Игорь ничего подобного не предлагал.

    Именно это Игорь в [62] и предлагал. Инструкция с картинками - она же сама по себе не выполнится, к ней программа нужна.
  • Anatoly Podgoretsky © (13.05.08 19:39) [125]
    Юрий ты и сам бы мог посмотреть,  а не заставлять меня копировать

    > И поставить ему дополнительную программу, которая этот SQL выполнять будет?
  • ^-k2-^ © (13.05.08 19:44) [126]
    "Игорь Шевченко ©   (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] ну по большому счету действительно в таких обобщенных справочниках может работать человек, имеющий представление о  структуре базы
  • Palladin © (13.05.08 19:45) [127]

    > Anatoly Podgoretsky ©   (13.05.08 19:39) [125]

    Какую? вроде "Конфигуратор Программы"? Кому, пользователю? Какому? На какую машину? Отпуск, декрет, загул и увольнение... всем? смысл? одному, но бегать убирать приложение-конфигуратор с машины и ставить на другую? боже упаси... "Конфигуратор Программы" должен отвечать за ведение пользователей и раздачу подобных прав на редактирование словаря...
  • Юрий Зотов © (13.05.08 19:51) [128]
    > Anatoly Podgoretsky ©   (13.05.08 19:39) [125]

    А я и посмотрел.

    Правильно сказано было. Если Игорь предлагает заставить юзера самого писать SQL для обновления справочников - значит, он предлагает поставить юзеру "дополнительную программу, которая этот SQL выполнять будет". Поскольку сам по себе этот SQL, очевидно, не выполнится.

    Так что это как раз предложил Игорь. Я же об этом лишь написал, но "написал" <> "предложил". Нес па?
  • Palladin © (13.05.08 19:52) [129]
    Если и правда Игорь в течении ветки ушел от жесткой позиции ненужности функционала по редактированию словарей (не справочников) и использования SQL (в картинках для пользователя) к стороннему (а стороннему ли?) приложению выполняющему функционал конфигуратора словарей, тогда конечно я забираю свои слова про бумагу топором обратно и приношу извинения, однако [127] это не отменяет
  • ^-k2-^ © (13.05.08 19:56) [130]
    Palladin ©   (13.05.08 19:45) [127]
    а конфигуратор разве не может быть в составе программы, только права и соотвественно видимость в зависимости от роли? зачем бегать ставить. передается только юзер/пароль
  • Palladin © (13.05.08 19:58) [131]

    > ^-k2-^ ©   (13.05.08 19:56) [130]

    а я о чем толкую? я о правах пользователей и толкую, для обычных функционал основного приложения по редактированию не доступен, меняется группа, он все видит и имеет право... однако это никакое не стороннее приложение, это все тоже основное приложение
  • Игорь Шевченко © (13.05.08 20:03) [132]
    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) и слыхом не слыхивали что Игорь Шевченко из далекой России, где по улицам бродят медведи, будет использовать их продукт для такой вот цели. Как обычный, кстате, юзер.
  • Palladin © (13.05.08 20:08) [133]

    > Выбора у наших заказчиков кстати нет, это ты прав :)

    так и знал, вопросов больше не имею, просто и ты меня пойми ) в таких условиях не заставишь выполнять ни SQL инструкции, ни шайку сетевых администраторов в купе с эникейщиками бегать переставлять "стороннее приложение" с места на место, просто (может по звонку, или при обновлении) приходит наш человек, ему знать про БД и словари не нужно, у него всегда инструмент для администрирования пользователей аппсервера на флешке, у него есть все данные для соединения с серевером, приходит в любое место, соединяется, переназначает права/заливает обновления/еще чего нибудь делает уходит, удобно... всего один человек, а столько делает )
  • ^-k2-^ © (13.05.08 20:13) [134]
    в справочниках обычно много чего заложено :) в том числе и форинкеи на другие справочники, много поможет если редактировать такой справочник будет человек, не имеющий представления о базе?  ну вот справочник:

    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, дали твое средство для справочников,
    человек реально утонет пока будет по всем справочникам рассекать,
    или будет удивляться, почему у нужной персоны недоступна площадка, ведь она завела, а то што не привязала персону все равно прийдется в картинках рассказывать
  • Palladin © (13.05.08 20:13) [135]

    > Как отметила Катя, в ряде случаев при изменении содержимого
    > "словаря" может потребовать изменение функциональности (тут
    > правда и insert-ом не обойдешься).

    такое, кстати, и у нас встречается... но это куда больше исключение, чем правило...
  • Palladin © (13.05.08 20:26) [136]

    > ^-k2-^ ©   (13.05.08 20:13) [134]

    :)

    Дополнительно, в метафизических терминах могу рассказать про справочник населенных пунктов. Он - справочник, отображаемая в терминах данных сущность, которую он представляет, это населенный пункт. Однако не все так просто. Во первых, населенный пункт принадлежит стране. В дело вступает словарь стран. Во вторых он может принадлежать, а может и не принадлежать, федеральной единице (в России: области, краю, республике). В состав справочника входит справочник "Федереальные единицы", а справочник он потому, что Федеральная единица в свою очередь принадлежит стране. В третьих, он может принадлежать, а может и не принадлежать, локальной единице (в России в подавляющем большинстве - район). Локальная единица - тоже справочник со ссылкой на федеральную единицу (необязательно) и страну (обязательно). Которая может не принадлежать федеральной единице, а может и не принадлежать, но всегда принадлежит стране. В третьих справочник меняет состав в месяц раз 10-15. Хотя может 3 месяца не меняться, пока товарищ из удмуртии, из неизведанного белого пятна с двумя домами носящими гордое название - станица, не приедет. Или какая нибудь деревня/аул/кишлак имя не поменяет.

    Но список населенных пунктов - справочник.
  • Игорь Шевченко © (13.05.08 20:29) [137]
    Palladin ©   (13.05.08 20:08) [133]


    > так и знал, вопросов больше не имею, просто и ты меня пойми
    > )


    Так я почти с самого начала говорил, что марксизм не догма, а руководство к действию :)

    В постах [49] и [59] в особенности.

    Если ты обратил внимание, то в посте [49] была такая фраза "чаще всего получается идиотский интерфейс". То есть, не всегда и не везде, а то, что чаще - ну такова се ля ви.

    А в посте [59] - "В разных случаях по-разному, очевидно. Какой юзер, какие данные, и т.д."
  • Игорь Шевченко © (13.05.08 20:31) [138]
    Palladin ©   (13.05.08 20:26) [136]


    > В третьих справочник меняет состав в месяц раз 10-15. Хотя
    > может 3 месяца не меняться, пока товарищ из удмуртии, из
    > неизведанного белого пятна с двумя домами носящими гордое
    > название - станица, не приедет. Или какая нибудь деревня/аул/кишлак
    > имя не поменяет


    В четвертых, это уже не справочник, а самые настоящие данные :)
  • Юрий Зотов © (13.05.08 20:39) [139]
    ^-k2-^ ©   (13.05.08 20:13) [134]

    > много поможет если редактировать такой справочник будет человек, не
    > имеющий представления о базе?

    Очень много. Юзеру и не нужно знать, что, куда и как пишется. Он должен работать в СВОИХ профессиональных терминах, а не в спецтерминах БД. И вообще не обязан знать слов "таблица" или "поле". А на форме ввода возле каждого поля ввода естественным образом стоит понятное ЮЗЕРУ наименование этого поля (например ФАМИЛИЯ, а не LAST_NAME). Благодаря чему справочник легко и просто редактируется юзером без всякого знания БД.

    Но если заставить юзера работать с SQL через "клиента общего назначения" - вот тогда он уж точно без знания конкретной БД попухнет. В частности, замучается ручками ссылочные поля прописывать.

    > будет удивляться, почему у нужной персоны недоступна площадка, ведь
    > она завела, а то што не привязала персону все равно прийдется в
    > картинках рассказывать

    А не придется. Форма ввода обязана перед сохранением данных проверить их и явную лажу в БД не писать, а выдать внятное сообщение. Это раз.

    Кроме того, юзер обязан знать СВОЮ предметную область - в том числе, обязан знать, что означают понятия "площадка" и "персона". Поэтому обязан понимать, что ежели площадка персоне не назначена, то для этой персоны она и недоступна. Это два.

    Но если заставить юзера работать с SQL через "клиента общего назначения" - вот тогда он уж точно замучается связки "многие ко многим" (персоны-площадки) ручками заполнять.
 
Конференция "Прочее" » override or overload ?
Есть новые Нет новых   [134435   +13][b:0.001][p:0.001]