Яков Сироткин (yakov_sirotkin) wrote,
Яков Сироткин
yakov_sirotkin

Должен ли программист знать SQL?

Придумал вопрос для интервью и даже один раз его задал: какие наиболее специфические вещи вы делали с базами данных?


Мой ответ:

Я делал полнотекстовый поиск встроенными средствами Oracle. Описание объекта могло быть раскидано по нескольким таблицам и это было довольно просто объяснить индексатору. Но как объяснить Oracle, какие записи изменились, если он следит только за изменениями в колонках основной таблицы? Пришлось писать триггеры, которые делали touch главной записи при изменении дополнительных данных.

Ещё мне довелось участвовать в доработке SQL-запроса, который искал варианты транспортировки контейнера из одного города в другой используя морской транспорт. Если бы мы пытались реализовать эту логику на Java, то нам бы не хватило ни канала для передачи данных, ни памяти, ни процессора на виртуальном хостинге. А так Oracle более-менее справлялся. Конечно, запрос занимал много страниц и нам пришлось оптимизировать скорость его выполнения.

В другом проекте я получил опыт борьбы с проблемами архитектуры. База данных содержала информацию о возможных форматах публикуемой рекламы в разнообразных изданиях. То есть много изданий, много допустимых форматов и разные дни выхода в печать. Разобраться с этим самостоятельно не представлялось возможным, пока не приехал из Англии специальный человек, мы разложили перед ним схему базы и начали задавать свои вопросы, а он по телефону переадресовывал эти запросы удалённому гуру. Забавно, что практически все таблицы содержали колонку с флагом удаления, но иногда удалённые строки помечались 0, а иногда — 1. Ещё исходная база была рассчитана на использование людьми, поэтому вместо Mon-Fri там могло быть написано, например, «on working days», а нам нужно было брать из неё информацию в автоматическом режиме.
Tags: hr
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 167 comments
Previous
← Ctrl ← Alt
Next
Ctrl → Alt →
Previous
← Ctrl ← Alt
Next
Ctrl → Alt →