|
|
|
Где лучше обрабатывать строки - на сервере или в приложении?
|
|||
|---|---|---|---|
|
#18+
Доброго всем времени суток! Возник такой вопрос. Скажем, у меня в SQL Server есть представление (с данными для клиентского приложения C#) со следующими столбцами: Наименование, Производитель, Цена . В приложении я хочу отображать все эти 3 данных в одном столбце. Как правильнее поступить - добавить в представление ещё один вычисляемый столбец с конкатенацией этих столбцов или же конкатенировать их уже в приложении? и почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2017, 15:14:45 |
|
||
|
Где лучше обрабатывать строки - на сервере или в приложении?
|
|||
|---|---|---|---|
|
#18+
В приложении у Вас есть String.Format. А чтобы лишних вопросов не возникало почитайте про нормализацию данных (три нормальные формы и тд). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2017, 15:24:46 |
|
||
|
Где лучше обрабатывать строки - на сервере или в приложении?
|
|||
|---|---|---|---|
|
#18+
fgarfield, вам все комбинации ситуаций перечислить и все последствия? Какую конкретно задачу решаете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2017, 15:27:14 |
|
||
|
Где лучше обрабатывать строки - на сервере или в приложении?
|
|||
|---|---|---|---|
|
#18+
fgarfieldДоброго всем времени суток! Возник такой вопрос. Скажем, у меня в SQL Server есть представление (с данными для клиентского приложения C#) со следующими столбцами: Наименование, Производитель, Цена . В приложении я хочу отображать все эти 3 данных в одном столбце. Как правильнее поступить - добавить в представление ещё один вычисляемый столбец с конкатенацией этих столбцов или же конкатенировать их уже в приложении? и почему? Коллега, вот даже с точки зрения нагрузки на сеть. У Вас есть 100 строк с 2 столбцами по 1000 символов. Вы внутри view добавляете третий в 2000 символов как связку первых двух. При селекте по сети полетит в сторону клиента уже 100 строк по 4000 символов в каждой вместо 2000 символов в каждой. А оно Вам таки надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2017, 15:29:59 |
|
||
|
Где лучше обрабатывать строки - на сервере или в приложении?
|
|||
|---|---|---|---|
|
#18+
Владислав Колосов, AlanDenton, Есть разные формы отчетов, по которым формируется отчетный перечень товаров. Данные для этих перечней приложение берёт из представления SQL Server. В некоторых формах для экономии места присутствуют составные столбцы, например "Наименование/Производитель/Цена". То есть это типовой столбец, жестко определенный. Вот передо мной и встал выбор - где собирать этот столбец: на сервере или в приложении. В приложении пользователь должен отмечать галочками нужные для отчета столбцы. Вариант собирать такие столбцы на сервере мне нравится больше, потому что этих галочек довольно много, и мне проще написать динамическое создание чек-боксов, чтобы при изменении этих столбцов ничего не менять в коде приложения. Вот мне и стало интересно - правильный ли это подход (с точки зрения быстродействия, например) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2017, 15:39:57 |
|
||
|
Где лучше обрабатывать строки - на сервере или в приложении?
|
|||
|---|---|---|---|
|
#18+
Andy_OLAP, Спасибо за ответ. А с точки зрения процессора - где выгоднее делать такие операции - на сервере или на клиентском ПК? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2017, 15:41:46 |
|
||
|
Где лучше обрабатывать строки - на сервере или в приложении?
|
|||
|---|---|---|---|
|
#18+
fgarfieldВариант собирать такие столбцы на сервере мне нравится больше... Вот мне и стало интересно - правильный ли это подходПравильный. Подумайте над: - В дальнейшем данные в таком виде понадобились на стороне сервера. - Изменились правила конкатенации. Если делать на клиенте потребуется перекомпиляция приложения. Если на сервере - только изменить представление. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2017, 16:31:34 |
|
||
|
Где лучше обрабатывать строки - на сервере или в приложении?
|
|||
|---|---|---|---|
|
#18+
AlanDentonпочитайте про нормализацию данных Вопрос Тс проще - данные склеивать в запросе или уже на клиенте. Мне кажется, что простые операции - в запросе. Если операции строковые сложные, то можно и на клиенте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2017, 16:41:38 |
|
||
|
Где лучше обрабатывать строки - на сервере или в приложении?
|
|||
|---|---|---|---|
|
#18+
Я вот считаю, что все, что можно выполнить штатными средствами сервера надо делать на сервере. Абстрактно, логику предоставления данных надо держать на уровне представления в одном месте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2017, 16:48:33 |
|
||
|
Где лучше обрабатывать строки - на сервере или в приложении?
|
|||
|---|---|---|---|
|
#18+
Если есть повторное использования вычисляемых колонок в разных отчетах, то лучше формировать на сервере. Сервер, как правило, мощнее ПК и при этом проще сопровождать проект, если изменится вычисляемый набор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2017, 17:19:27 |
|
||
|
Где лучше обрабатывать строки - на сервере или в приложении?
|
|||
|---|---|---|---|
|
#18+
Лично я давно забил на best-practices и всю бизнес-логику реализую на сервере, и преобразования - на сервере. Потому что pivot любую фичу на SQL написать легче, чем компоненту на клиенте, которая эту фичу отрисует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2017, 17:34:49 |
|
||
|
Где лучше обрабатывать строки - на сервере или в приложении?
|
|||
|---|---|---|---|
|
#18+
Владислав КолосовЕсли есть повторное использования вычисляемых колонок в разных отчетах, то лучше формировать на сервере. Сервер, как правило, мощнее ПК и при этом проще сопровождать проект, если изменится вычисляемый набор. Все верно. Только вот у автора темы задача другая "со следующими столбцами: Наименование, Производитель, Цена. В приложении я хочу отображать все эти 3 данных в одном столбце.". И именно поэтому склеивать числовые цены в текстовые представления нужно на клиенте. Потому что сервер выдаст наименование "товар1" и производителя "производитель2" и цену 1234.56. А клиент - по выставлению разных галочек - один захочет увидеть как "товар1;производитель2;1,234.56", другой захочет "Товар1 /10 пробелов/ Производитель1 /5 пробелов/ 1.234,56", а третий захочет "ТОВАР1|ПРОИЗВОДИТЕЛЬ2|1 234.56". Потому что это не логика, а показ в склеенном виде так, как хотят увидеть . И возможно дальше скопировать в Excel и обработать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2017, 17:36:12 |
|
||
|
Где лучше обрабатывать строки - на сервере или в приложении?
|
|||
|---|---|---|---|
|
#18+
Andy_OLAP. Потому что это не логика, а показ в склеенном виде так, как хотят увидеть . И возможно дальше скопировать в Excel и обработать. Но поскольку все это хранится... на сервере (*chimes*), то проще отдавать клиенту уже все в готовом виде, реализовав склейку на сервере, чем реализовывать логику склейки на клиенте. потому что в идеале должно быть - DB (данные) - middle ware (преобразование) - client (вывод/ввод). А раз нет середины, где реализовывать функционал - на откуп погромиста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2017, 17:41:49 |
|
||
|
Где лучше обрабатывать строки - на сервере или в приложении?
|
|||
|---|---|---|---|
|
#18+
Andy_OLAP, а потом какой либо еще клиент захочет видеть "товар1;производитель2;1,234.56$" и вы ради одного единственного знака "$" полезете компилировать клиента? классно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2017, 17:43:14 |
|
||
|
Где лучше обрабатывать строки - на сервере или в приложении?
|
|||
|---|---|---|---|
|
#18+
fgarfieldAndy_OLAP, Спасибо за ответ. А с точки зрения процессора - где выгоднее делать такие операции - на сервере или на клиентском ПК? Слейку текстовых символов выгоднее делать на клиенте, зная точно архитектуру его CPU, длину регистров, размер кэша L1 и подставляя уникальные конкретно для него инструкции в машинном коде, написанные на c/c++ и ассемблере. Точно понимая, что сервер перегружен, все его ядра заняты, а на CPU клиента малая загрузка потоков в ядре и не будет сбиваться конвейер инструкций. Ну это если совсем академично подойти к данному вопросу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2017, 17:45:04 |
|
||
|
Где лучше обрабатывать строки - на сервере или в приложении?
|
|||
|---|---|---|---|
|
#18+
Ага, и вот у тебя есть клиент для винды, клиент для мака, клиент для ведроида, и клиент для иоса. И при очередной хотелке бизнеса типа "поменять Иванов И.И. на И.И. Иванов" ты поехал пересобирать 4 клиента вместо апдейта одной вьюхи. Норм план. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2017, 17:48:14 |
|
||
|
Где лучше обрабатывать строки - на сервере или в приложении?
|
|||
|---|---|---|---|
|
#18+
felix_ffAndy_OLAP, а потом какой либо еще клиент захочет видеть "товар1;производитель2;1,234.56$" и вы ради одного единственного знака "$" полезете компилировать клиента? классно. Именно! Только так! Клиент ВСЕГДА прав. Выложил деньги за товар - и я не только ему ПО перекомпилирую, но еще и при этом станцую Хава-нагилу, при всем моем почтенном возрасте, да еще и спою как Лучано Паваротти. Или заранее продумаю галочки, при которых будет и "$", и ",", и "." как разделители. Все для любимых клиентов - это не руководители нам зарплату платят, а они платят. Из их кармана наши премии и бонусы. И это нужно помнить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2017, 17:48:17 |
|
||
|
Где лучше обрабатывать строки - на сервере или в приложении?
|
|||
|---|---|---|---|
|
#18+
CammomileАга, и вот у тебя есть клиент для винды, клиент для мака, клиент для ведроида, и клиент для иоса. И при очередной хотелке бизнеса типа "поменять Иванов И.И. на И.И. Иванов" ты поехал пересобирать 4 клиента вместо апдейта одной вьюхи. Норм план. Минимум безработицы, максимум прибыли, клиент при этом считает деньги и думает - ему заранее прописать в ТЗ, чтобы "поменять Иванов И.И. на И.И. Иванов" менялось одной галочкой, или отказаться от этой идеи как бредовой. Но я не брезгливый. И шекели не пахнут. Нужно реализовывать хотелки бизнеса не бесплатно, а за счет денег бизнеса - таки разве я против? Таки всегда пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2017, 17:50:36 |
|
||
|
Где лучше обрабатывать строки - на сервере или в приложении?
|
|||
|---|---|---|---|
|
#18+
Только у нас тут форум не про то, как доить бизнес, а про то, как писать вменяемые коды. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2017, 17:51:15 |
|
||
|
Где лучше обрабатывать строки - на сервере или в приложении?
|
|||
|---|---|---|---|
|
#18+
*ищет свой попкорн* И тут Остапа понесло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2017, 17:52:02 |
|
||
|
Где лучше обрабатывать строки - на сервере или в приложении?
|
|||
|---|---|---|---|
|
#18+
CammomileТолько у нас тут форум не про то, как доить бизнес, а про то, как писать вменяемые коды. Нет, коллега, у нас тут форум и про то, как писать вменяемые коды и потом на кафедре программирования рассказывать про это студентам, и форум про то, как реализовывать хотелки бизнеса за его деньги. А что значит "доить бизнес"? Лицензии SQL Enterprise вместо SQL Standard - доить? Поменять view на сервере - доить? Или Вы view будете бесплатно менять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2017, 17:53:00 |
|
||
|
Где лучше обрабатывать строки - на сервере или в приложении?
|
|||
|---|---|---|---|
|
#18+
felix_ff, А потом приходит еще раз заказчик и говорит - Иванову показывайте цену как "1,234.56", а Петрову как "1 234,56". Они потом выгрузку разным получателем будут отправлять, а копипастить из окошка ПО. И Вы такой гордый весь в белом - "я сейчас view поменяю, и Иванов с Петровым будут унифицированным вариантом пользоваться. И не нужны мне Ваши деньги, я не собираюсь Вас доить, все сделаю бесплатно и однотипно. Мне так виднее, я творец"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2017, 17:55:37 |
|
||
|
Где лучше обрабатывать строки - на сервере или в приложении?
|
|||
|---|---|---|---|
|
#18+
Десктоп-приложение но все равно оно web Мне кажется, вам сюда, коллеги :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2017, 18:02:03 |
|
||
|
Где лучше обрабатывать строки - на сервере или в приложении?
|
|||
|---|---|---|---|
|
#18+
Andy_OLAP, на случай вариативности - я постараюсь заранее спроектировать систему так что бы потом не обосраться кирпичами лезть в исходники лишний раз. необходимо правильно выстраивать приоритеты коллега и ценить собственное время. MVVM не зря был придуман. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2017, 18:06:59 |
|
||
|
Где лучше обрабатывать строки - на сервере или в приложении?
|
|||
|---|---|---|---|
|
#18+
felix_ffAndy_OLAP, на случай вариативности - я постараюсь заранее спроектировать систему так что бы потом не обосраться кирпичами лезть в исходники лишний раз. необходимо правильно выстраивать приоритеты коллега и ценить собственное время. MVVM не зря был придуман. Так я согласен с Вами полностью. Но если у автора темы нет сервера приложений - где ему текстовые поля клеить, внутри view жестко однотипно для всех клиентов, или внутри ПО, где галочками можно предусмотреть хотя бы несколько типовых вариантов склейки? В данном конкретном примере считаю view злом большим, чем все прочие... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2017, 18:10:16 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=175&tid=1690732]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
25ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
| others: | 224ms |
| total: | 330ms |

| 0 / 0 |
