- 1
- 2
$user_id = $engine->auth->id;
$sql = "SELECT `id` FROM `arm_tasks` WHERE (followers_id = '{$user_id}' OR followers_id LIKE '{$user_id},%' OR followers_id LIKE '%,{$user_id},%' OR followers_id LIKE '%,{$user_id}') ";
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+156
$user_id = $engine->auth->id;
$sql = "SELECT `id` FROM `arm_tasks` WHERE (followers_id = '{$user_id}' OR followers_id LIKE '{$user_id},%' OR followers_id LIKE '%,{$user_id},%' OR followers_id LIKE '%,{$user_id}') ";
Вот так отжигает товарищ по отделу.
Поле followers_id в виде строки с id-шниками через запятую (что тоже не очень хорошо)
eth0 11.08.2014 17:52 # +1
defecate-plusplus 11.08.2014 18:00 # −2
сказали же, "не очень хорошо"
т.е. оно как бы и ничего, но всё же что-то тут не так...
нет
показалось
bormand 11.08.2014 18:57 # −1
eth0 11.08.2014 19:12 # −1
Как вариант - были всегда (гуглить лень), просто последние несколько лет я провёл в анабиозе, и привык к огнептице. Зачем тогда ломать "стандарты" и выдумывать? Непонятно.
bormand 11.08.2014 19:16 # +2
Дык и character varying и varchar, емнип, из стандарта SQL. И оба варианта работают в слонике. Что не так то?
> ломать "стандарты"
Лолшто, SQL 92 с тобой не согласен:
SQL defines distinct data types named by the following <key word>s: CHARACTER, CHARACTER VARYING, BIT, BIT VARYING, NUMERIC, DECIMAL, INTEGER, SMALLINT, FLOAT, REAL, DOUBLE PRECISION, DATE, TIME, TIMESTAMP, and INTERVAL.
1) CHAR is equivalent to CHARACTER. DEC is equivalent to DECIMAL. INT is equivalent to INTEGER. VARCHAR is equivalent to CHARACTER VARYING. NCHAR is equivalent to NATIONAL CHARACTER.
kegdan 11.08.2014 19:36 # −1
bormand 11.08.2014 19:44 # +2
Это ораклопроблемы.
kegdan 11.08.2014 19:45 # −1
eth0 11.08.2014 19:41 # −1
Наверное, раньше было как-то больше варчаров, а сейчас - не очень.
bormand 11.08.2014 19:44 # 0
Остальные пишут varchar и не парятся :)
eth0 11.08.2014 19:47 # −1
bormand 11.08.2014 19:50 # 0
Только консолька, только хардкор ;)
eth0 11.08.2014 19:55 # −1
P.S. А вот pgdump говорит, что таки character varying. Не уверен, от чего это зависит.
bormand 11.08.2014 20:03 # 0
Разницы то никакой, просто показывает первый попавшийся алиас для этого типа.
anonimb84a2f6fd141 14.08.2014 16:36 # −9
bormand 11.08.2014 19:14 # −1
eth0 11.08.2014 19:43 # −1
bormand 11.08.2014 19:45 # −1
defecate-plusplus 11.08.2014 20:18 # −1
ну там иерархию построить: наследование, полиморфизм
и хранить их всех в одной единой таблице, в колонке с базовым типом
а то ведь оракл считает, что бд вполне себе место для таких акробатик
вынуждают, суки
bormand 11.08.2014 20:47 # −1
В колонку слоник позволяет упихать массивы, структуры, hstore (аля key-value хранилище в колонке) и json.
А наследование там только на уровне таблиц - select из родительской возвращает заодно строчки из унаследованных от нее.
> в колонке с базовым типом
Ну прям в колонку нельзя, но ведь джойн с полиморфной табличкой никто не отменял.
bormand 11.08.2014 21:28 # −1
http://sqlfiddle.com/#!15/58f8f/1
eth0 12.08.2014 18:08 # −1
defecate-plusplus 12.08.2014 18:42 # −1
только hibernate
только assparallel
eth0 12.08.2014 19:05 # −1
defecate-plusplus 12.08.2014 19:15 # −1
конечно
это всё кривая скользкая дорожка, заманивает переносить нетривиальную логику с сервера прямо в бд
объекты в оракле уже в двух весьма нагруженных задачах заюзал, полет нормальный
через 100 лет это всё перепишут жавоёбы, потребив нехило серверной памяти и своих трудочасов, но это будет уже совсем другая история
Lure Of Chaos 11.08.2014 20:39 # −1
andr435 13.08.2014 10:38 # −1
Ностальжи...
Cascader 14.08.2014 10:29 # −2
defecate-plusplus 14.08.2014 10:31 # 0
anonimb84a2f6fd141 14.08.2014 16:35 # −12
anonimb84a2f6fd141 14.08.2014 16:46 # −18
anonimb84a2f6fd141 14.08.2014 16:47 # −11
anonimb84a2f6fd141 14.08.2014 16:47 # −11
anonimb84a2f6fd141 14.08.2014 16:47 # −10
anonimb84a2f6fd141 14.08.2014 16:47 # −11
anonimb84a2f6fd141 14.08.2014 16:47 # −11