Конференция "Прочее" » Студенческая задачка
 
  • pavel_guzhanov © (10.04.17 16:28) [160]

    > Юрий Зотов ©   (10.04.17 15:08) [157]


    > А на практике было вот что:
    > - триггеры запрещены;
    > - хранимки запрещены;
    > - внешние ключи запрещены (они, конечно, есть, но БД об
    > этом не знает);
    > - нормализация данных близка к нулю;
    > - и т.п.

    Юр, мне кажется, что я знаю, что это за проект :о))
  • Юрий Зотов © (10.04.17 16:41) [161]
    > pavel_guzhanov ©   (10.04.17 16:28) [160]

    Паша, тот проект, который ты знаешь изнутри - это еще цветочки. Там хотя бы нормализация культурная.

    А вот тот проект, которого ты изнутри не знаешь (ну, ты понял, да?) - это достойный экспонат для выставки. Претендент на медаль.
  • Игорь Шевченко © (10.04.17 16:50) [162]
    Юрий Зотов ©   (10.04.17 16:41) [161]

    Странно, сколько лет с базами работаю, не попадалось подобных ситуаций. Но даже если что-то сделано криво, я не до конца понимаю, зачем эту кривизну приводить в пример ?
  • Kerk © (10.04.17 16:51) [163]
    Я могу представить причины почему триггеры и хранимки запрещены, но внешние ключи-то за что?
  • pavel_guzhanov © (10.04.17 16:52) [164]

    > Но даже если что-то сделано криво, я не до конца понимаю,
    >  зачем эту кривизну приводить в пример ?

    Игорь, это не "сделано криво", это требования заказчика
  • Юрий Зотов © (10.04.17 17:09) [165]
    > Игорь Шевченко ©   (10.04.17 16:50) [162]

    > зачем эту кривизну приводить в пример ?


    А что еще приводить в пример кривизны, как не кривизну?

    > Kerk ©   (10.04.17 16:51) [163]

    > внешние ключи-то за что?


    Уже несколько лет тоже не могу этого понять. Заказчик так хочет, а его пути неисповедимы.
  • Игорь Шевченко © (10.04.17 17:13) [166]
    pavel_guzhanov ©   (10.04.17 16:52) [164]
    Юрий Зотов ©   (10.04.17 17:09) [165]


    > Игорь, это не "сделано криво", это требования заказчика


    Не понял. Заказчик вроде занимается своей прикладной областью, в которой такие понятия, как внешние ключи отсутствуют.
  • Kilkennycat © (10.04.17 17:19) [167]

    > Игорь Шевченко ©   (10.04.17 17:13) [166]

    некоторые заказчики очень "умные".
  • Юрий Зотов © (10.04.17 17:22) [168]
    > Игорь Шевченко ©   (10.04.17 17:13) [166]

    У заказчика есть свои айтишники, причем грамотные. Какую-то часть они пишут сами, какую-то отдают подрядчику. Наверное, людей маловато.
  • Игорь Шевченко © (10.04.17 17:26) [169]
    Юрий Зотов ©   (10.04.17 17:22) [168]

    Могу только посочувствовать. Но я бы не стал приводить в пример такие конструкции.
  • Сергей Суровцев © (10.04.17 23:54) [170]
    >Игорь Шевченко ©   (10.04.17 16:08) [159]
    >Что это у вас за база такая ? Мне право интересно.

    В двух словах: по всей стране куча народу вбивает данные с еще большей кучи бланков, заполняемых вручную. Информация искажается и на этапе заполнения, и на этапе набивания. Часть параметров не обязательна к заполнению, но обязательна на этапе обработки и проставляется из справочников, которые тоже не всегда дают однозначное соответствие - много родственных и малоотличающихся параметров, зависящих от многих деталей и факторов. Плюс к этому взаимозависимая информация поступает и обрабатывается частями, но в итоге должна составлять целостную картину. Примерно так.
  • Enit © (11.04.17 00:02) [171]
    >но внешние ключи-то за что?

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

    Например, CBOSS на оракле не использовал внешние ключи, по крайней мере во времена когда биллинг мтс сидел на них.
  • Сергей Суровцев © (11.04.17 00:05) [172]
    >Игорь Шевченко ©   (10.04.17 17:26) [169]
    >Могу только посочувствовать. Но я бы не стал приводить в пример такие конструкции.

    Эти конструкции чрезвычайно распространены. Где-то лучше, где-то хуже, но в целом рядовое явление. Даже можно сказать естественное, системы создавались десятилетиями, разными разработчиками, при разных руководителях с разными приоритетами, идеями фикс, страхами и причудами. И вот в это приходится встраивать что-то свое.
    Единственный способ не сталкиваться с этим - создавать готовый базовый программный комплекс для решения каких-то серьезных задач. Тогда уже поставщик ПО диктует условия, а заказчик либо принимает их, либо не берет это ПО. Компромиссы, конечно, возможны, но по мелочам, не затрагивая основной функционал.
  • Сергей Суровцев © (11.04.17 00:15) [173]
    В качестве примера могу привести работу, которой удалось избежать. Была у одного заказчика идея оплачивать работу сотрудников по минутам. На проходной стоял аппарат и по пальцу фиксировал кто когда пришел, выходил и заходил в течении дня, когда ушел. Эта идея не нравилась никому кроме директора. Кроме того интерфейс у системы - текстовый файл, причем крайне корявый.
    Отговорить его смогли только показав, что по данным системы человек может 3 раза войти и только 1 раз выйти, или наоборот, или вообще не входить, зато 2 раза выходить и т.д. Месяц они пытались наладить пару вход-выход, но так и не смогли.
  • Игорь Шевченко © (11.04.17 10:15) [174]
    Сергей Суровцев ©   (11.04.17 00:05) [172]

    Мне очень жаль, что тебе приходилось/приходится сталкиваться с подобным негативом. Но поверь, положительных примеров на порядок, а то и несколько, больше.
  • Сергей Суровцев © (11.04.17 10:50) [175]
    >Игорь Шевченко ©   (11.04.17 10:15) [174]
    >Но поверь, положительных примеров на порядок, а то и несколько, больше.

    Игорь, если можно, приведи несколько примеров. Не в плане доказательства, а для поднятия настроения. )))
  • Игорь Шевченко © (11.04.17 10:59) [176]
    Сергей Суровцев ©   (11.04.17 10:50) [175]

    Несколько примеров чего ??? Я, например, занимаюсь базами данных, довольно давно, больше 30 лет, не одну систему написал сотоварищи, ни разу с подобными (а давайте мы базу как свалку использовать будем) заявлениями/пожеланиями не сталкивался.

    Еще раз - заказчику обычно надо, чтобы система работала в терминах его предметной области, а там такие понятия, как внешние ключи, триггеры и прочие специфические понятия, не участвуют.
  • Сергей Суровцев © (11.04.17 11:35) [177]
    >Игорь Шевченко ©   (11.04.17 10:59) [176]

    Так об этом и речь. Когда ты сам делаешь базу, с нуля, то все кульно и рульно. А уж если еще и ввод в нее контролируешь, вообще идеал.
    А вот когда тебе говорят - У нас есть база! Она ведется чуть ли не от князя Владимира, в ней есть ВСЯ необходимая информация, нужно только пристроить к ней набор отчетов!
    А ты смотришь на эту базу и видишь, что инфа в нее вносилась в разное время по разным правилам, что-то они придумали значительно позже и эта инфа есть только за последнее время, а раньше ее в принципе нет, там где должны бы быть справочники - голое поле, про индексы никто и не слышал и т.д. Но они-то уверенны, у них все замечательно! И когда говоришь им о сроках и стоимости в таких условиях, на тебя смотрят как на марсианина - там же делать нечего! А от предложения перестроить их базу у них начинается нервный тик и неадекватные реакции, потому что страшно трогать, кто отвечать потом будет?
  • Игорь Шевченко © (11.04.17 12:10) [178]
    Сергей Суровцев ©   (11.04.17 11:35) [177]

    Еще раз - я занимаюсь разработкой систем. Мне кажется, что не я один. На форумах и в реальной жизни я общаюсь с коллегами и могу примерно судить о качестве других проектов.

    И да, наколенная кустарщина меня не интересует.
  • Сергей Суровцев © (11.04.17 12:33) [179]
    >Игорь Шевченко ©   (11.04.17 12:10) [178]
    >Еще раз - я занимаюсь разработкой систем. Мне кажется, что не я один.

    Да кто с тобой спорит, что нормально разработанные системы - это хорошо? Или о том что их много?

    >И да, наколенная кустарщина меня не интересует.

    Поверь на слово, тем, кому с ней приходится сталкиваться она тоже радости не приносит.
 
Конференция "Прочее" » Студенческая задачка
Есть новые Нет новых   [134431   +10][b:0.001][p:0.001]