Vitaliy
даблин.
Vitaliy
https://www.youtube.com/watch?v=UZq4sZz56qM
Aleserche
это прекрасно
Anton
agile же
Vitaliy
еще прекрасное — про программистов строящих дом. правда, это все уже древний фольклор, и технические шутки могли устареть и стать непонятными, например что-нибудь про гей вин98.. надо перечитать проверить :)
Vitaliy
собственно, про дом — предыстория к самолету
Ohar
Вот почитаешь такие ответы и хочется пойти что-нибудь со знаком SQL сжечь http://stackoverflow.com/a/7745635/2059884
Ohar
Ну это вроед как не особо хитрая операция, но делается очень странным способом
Vladislav 👻
а как по другому?
Ohar
а как по другому?
Как-то так? SELECT id, rev FROM YourTable WHERE MAX(rev)
Vladislav 👻
с чем сравнивается MAX(rev)?
Ohar
С другими rev, очевидно
Vladislav 👻
где это прописано?
Ohar
У меня? Или в стандарте?
Ohar
В стандарте нигде, в этом и проблема
Vladislav 👻
это не проблема
Ohar
Ну раз ты так говоришь, то так и есть
Vladislav 👻
так говорю не я
Vladislav 👻
а лепить свой какой-то хитрый SQL, который работает "вот так" - это точно проблема
Ohar
Мне не нужен хитрый SQL
Ohar
Мне нужно удобный способ делать выборки
Ohar
А делать тройные джоины только потому что довольно очевидного WHERE MAX(foo) нет в стандарте — это не удобный способ
Vladislav 👻
Vladislav 👻
в чем проблема?
Ohar
в том что он склеивает строки, а мне не только эти поля нужны
Ohar
а он собирает франкенштейна
Vladislav 👻
собирает, потому что архитектура такая
Ohar
ну вот в этом и проблема, наверное
Vladislav 👻
ну уж явно не в SQL
Ohar
Ну да, простите, святыню нельзя трогать
Vladislav 👻
причем здесь святыня, язык SQL очень гибкий и довольно удобный, другое дело, что все кто лезут в БД, начинают лепить бред, вместо того, чтобы один раз сесть и спроектировать нормально БД
Vladislav 👻
NF не просто так был придуман
Ohar
Отлично. Вот только не всегда ты работаешь с БД, которую ты проектировал и не всегда с БД, структуру которой в принципе можно менять
Vladislav 👻
в примере, который принесли, по структуре таблицы сразу видно множество нарушений, начиная с уникальности
Vladislav 👻
почитайте еще про SCD
Ohar
в примере, который принесли, по структуре таблицы сразу видно множество нарушений, начиная с уникальности
Потому что там id не уникален? Подставьте другое имя поля и всё сразу станет на свои места.
Vladislav 👻
сразу поймете, почему в примере со SO не правильно спроектировано
Vladislav 👻
составные ключи лучше всего выносить в отдельные таблицы
Vladislav 👻
Сейчас очень не плохо начинается использоваться Anchor Modeling, но там 6NF и не каждый готов на это пойти
Ohar
сразу поймете, почему в примере со SO не правильно спроектировано
Прочитал. Не понял. Потому что там первичный колюч нельзя собрать из полей?
Vladislav 👻
потому что там составной ключ по нескольким полям
Ohar
Так блин, там просто таблица с примером полей, которые нужно выбрать. Вы ухватились за то, что одно из них называется id и играете от этого. Представьте, что там породы котов вместо id.
Vladislav 👻
SELECT t1.id, t1.rev, t1.context FROM YourTable t1 WHERE t1.rev = (SELECT MAX(t2.rev) FROM YourTable t2 WHERE t2.id = t1.id)
Vladislav 👻
вот вам без джойнов
Vladislav 👻
между прочим, это одно из лучших решений, но хомяки с SO решили по другому
Ohar
хм, действительно
Ohar
Спасибо большое
Ohar
тут, правда, будет проблема с дублями, но это меньшее из зол
Ohar
И всегда можно сделать DISTINCT
Vladislav 👻
дублей не будет, если ставится условие, что составной ключ id-rev
Ohar
Ну это в идеальном мире с правильным проектированием БД, из которой делается выборка)
Ohar
не мой случай)
Vladislav 👻
это уже сферический конь в вакууме
Ohar
угу
Ohar
Спасибо большое, вы мне очень помогли
Ohar
Vladislav 👻
Спасибо большое, вы мне очень помогли
Забыл добавить, есть же оконные функции у многих БД, я хз, как в mysql, но можно вот так еще SELECT t1.id, MAX(t1.rev) OVER(PARTITION BY t1.id), t1.context FROM YourTable t1 Но вот тут как раз будет просто подставлятся максимальная ревизия на ВСЕ записи
Vladislav 👻
Точно знаю, что благодаря им, можно вытаскивать нормально историчность, но честно, у меня еще руки до оконных функций не дошли, поэтому на практике я смогу это показать и рассказать через пару месяцев где-то...
Quiet
Какую ос посоветуйте установить на ноут i3 6gen проц? Из линукса
Evgeny
Fedora
Skeptic
Arch
Quiet
Эм
Skeptic
Счас каждый назовет дистр, который сам использует
Quiet
Что бы без заморочек) Ноут для веб кодинга
Skeptic
Так что ставь тот, который тебе знаком
Quiet
Лхде не нравится стиль хп
Skeptic
Убунту, не?
Evgeny
Gnome
Skeptic
Гномик плюсую
Quiet
Убунту, не?
Хороший вариант, а она глючить не будет?
Skeptic
Это от прямоты рук зависит
Quiet
И де будет юзатся без мыши
Skeptic
А чего нет?
Igor
hackintosh?)
Quiet
Это от прямоты рук зависит
Эм, даже по дефолту некоторые ос глючат