ビリャチピスデツナフイ Войти !bnw Сегодня Клубы
Давай, покажи МОЩЬ ORM, и СЛОЖНУЮ АБИЕКТНАЮ ЛОГИКУ, и не забудь поделиться высером EF. На таких задачках(очень простых, на самом деле, и частых на практике. А и да, СУБД PostgreSQL 9.4+ или MSSQL 2008R2+): 1. Есть %%два стула%% две таблички, account(user_id int, amount decimal(19,4)) и transactions(user_id int, amount decimal(19,4), timestamp long) Соответственно, нужно атомарно снять с аккаунта бабло, и записать в историю транзакций. И, ессно, не обосраться, случайно уйдя в нули(выдав нежданный кредит юзеру лол) или похерив консистентность данных. 2. Есть табличка foo(id int, value1 varchar(255), value2 varchar(255)) Нужно вывести сет с тремя колонками - (id int, value1 varchar(255), value2 varchar(255), is_duplicate bool) Причем таким образом, что id, value1 и value2 берутся из основной таблички, а is_duplicate - true в тех записях, для которых уже существовало либо такое же value1 + value2, либо такое же value2 + value1. 3. В БД есть таблица place(id int, lat decimal(19,4), lon decimal(19,4), description text) Также, есть таблица feature(id int, place_id int, description text, price decimal(19,4)) Place - места на карте, feature - характеристики этих мест. В определенной области карты физически может находится несколько десятков тысяч мест(А может хуй целых ноль десятых) Но на UI надо показывать максимум 300, причем равномерно разбросанными по карте. Причем, как это обычно бывает, кроме области карты, на UI есть и другие фильтры. Допустим у нас 2 - по тексту(призвольные обрывки текста, нужно из говна и палок угадывать что имел ввиду пользователь прям как яндекс-геокодер) - это поля description, и по цене(средний price фич места). А, и по цене(средней) еще и сортировка - снизу вверх, или наоборот. А на UI надо выводить места, да, и все их feature.
#UHVPME / @anonymous / 3831 день назад

1. BEGIN; SELECT * FROM accounts FOR UPDATE; /* do whatever the fuck you want, your fucking checks, whatever */ UPDATE accounts SET balance = ...; INSERT INTO transactions ...; COMMIT;
#UHVPME/BFU / @komar / 3831 день назад
2. Подзапрос хуярь. Что непонятного? За тебя написать?
#UHVPME/WRD / @komar / 3831 день назад
3. > Но на UI надо показывать максимум 300, причем равномерно разбросанными по карте. Кластеризация тебе нужна. Гугли.
#UHVPME/QKP / @komar / 3831 день назад
@komar он грит тип через активрекорт (или как там у вас это называется) делай
#UHVPME/WU5 / @anonymous --> #UHVPME/BFU / 3831 день назад
@anonymous Мне переписать на Mode.transaction do ... end?
#UHVPME/RDO / @komar --> #UHVPME/WU5 / 3831 день назад
@komar я так понял он подразуевает что оно обосрётся
#UHVPME/QD2 / @anonymous --> #UHVPME/RDO / 3831 день назад
@anonymous Оно не обосрется. Тут запросы примитивные.
#UHVPME/9VW / @komar --> #UHVPME/QD2 / 3831 день назад
@komar на самом деле всё и так будет работать, ибо вся база в память влезает )))
#UHVPME/KSZ / @anonymous --> #UHVPME/QKP / 3831 день назад
@anonymous А в анус она тебе влезает?
#UHVPME/0N0 / @komar --> #UHVPME/KSZ / 3831 день назад
@komar десятки-сотни раз сдэшки нынче толсты оче
#UHVPME/9BS / @anonymous --> #UHVPME/0N0 / 3831 день назад
@anonymous Ты можешь заткнуться?
#UHVPME/H2X / @komar --> #UHVPME/9BS / 3831 день назад
@komar иногнет
#UHVPME/HLV / @anonymous --> #UHVPME/H2X / 3831 день назад
@komar <http://bnw.im/p/UHVPME#QKP> 1. ОРМ не умеют в select for update. 2. ОРМ не умеют в оконные функции. 3. ОРМ не умеют в оконные функции, в нормальное group by и FTS. Собсно пост о том что ОРМ говно
#UHVPME/YX8 / @anonymous --> #UHVPME/QKP / 3831 день назад
@anonymous > ОРМ не умеют в select for update обосрался на всю хату > ОРМ не умеют в оконные функции обосрался на всю хату > ОРМ не умеют в оконные функции, в нормальное group by и FTS обосрался на всю хату
#UHVPME/1AB / @komar --> #UHVPME/YX8 / 3831 день назад
@komar <http://bnw.im/p/UHVPME#1AB>  Покажь маня
#UHVPME/IZW / @anonymous --> #UHVPME/1AB / 3831 день назад
@anonymous > ОРМ не умеют в select for update ActiveRecord: Huitum.lock.find(666) > ОРМ не умеют в оконные функции ActiveRecord: Huitum.find(666).select(&#39;*, sum(id) OVER ()&#39;) > ОРМ не умеют в оконные функции, в нормальное group by и FTS FTS — google://activerecord+postgresl+fts, триллион гемчиков Не уверен, что такое «нормальное» group_by. Обычное показывать? Оконные функции уже были вверху.
#UHVPME/FPN / @komar --> #UHVPME/IZW / 3831 день назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.