Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (4) [1] 2 3 ... Последняя » ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Стилизация - нескольких запросов vs одного
GET  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



TERRAFORMING ENGINEER
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 3883
Пользователь №: 21196
На форуме: 6 лет, 10 месяцев, 19 дней
Карма: 87




Привет, есть логически очень сложный скрипт в котором формируются 32 вида MySQL запроса (не считая order by - x 3 варианта).

Как думаете, как удобнее - сделать один сборный запрос что-то типа такого:

$SQL="SELECT * $fields
FROM $tab
$join

WHERE $where
$order
";


плюсы: краткость и универсальность
минусы: нет наглядности, нет гибкости настроить каждый запрос под себя (например, в некоторых соединениях не делать JOIN из-за малого количества)

------------------

или внимательно расписать в блоках по условиям IF/ELSE (максимум до 4-х уровней глубины х 8) каждый запрос:
if($a=='')
{
$SQL="
SELECT `id1`,`name1`
FROM `tab1`
INNER JOIN `tab2`..."
;
}
else
{
if($b=='')
{
$SQL="
SELECT `id1`,`name2`
FROM `tab1`
INNER JOIN `tab2`..."
;
}
else
{
if($b=='5')
{
...
}
else
{
if...
}
}
}




плюсы: гибкая настройка, каждый запрос прекрасно видно
минусы: занимает очень много места (если всё красиво расписать около 1000 строк кода), в случае редактирования придется все их перебирать


--------------------
Не тот велик, кто не падал, а тот кто падал и поднимался.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15781
Пользователь №: 6543
На форуме: 8 лет, 3 месяца, 19 дней
Карма: 299

Трезвый :
6 лет, 29 дней


Истина, как обычно, посередине. Однотипные запросы вряд ли есть смысл расписывать по отдельности, всегда можно посмотреть, что там получилось в итоге, просто выводя на экран переменную $SQL.

Иначе плюсы
Цитата (GET @ 20.08.2016 - 00:52)
гибкая настройка, каждый запрос прекрасно видно
рискуют пеейти в минусы, как минимум антипаттерн "мягкое кодирование".

С другой стороны, поытаться собрать всё мыслимое и немыслимое в одну "рыбу" грозит жутко запутать логику.

Так что универсального совета нет и быть не может.


--------------------
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Зачем ворошить старое, когда можно наворотить новое?

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
GET  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



TERRAFORMING ENGINEER
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 3883
Пользователь №: 21196
На форуме: 6 лет, 10 месяцев, 19 дней
Карма: 87




twin
Спасибо.


--------------------
Не тот велик, кто не падал, а тот кто падал и поднимался.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Миша  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 2562
Пользователь №: 37963
На форуме: 3 года, 5 месяцев, 12 дней
Карма: 28




Первый вариант логически разбить по условию на 2-3 других варианта, получится нечто среднее.

Второй вариант немного громоздкий, но тут нужно смотреть кто будет поддерживать код, даже ты через некоторое время забудешь, значит нужно хорошо закомментировать.

Я бы сделал исходя из производительности, потому как всю логику можно описать в отдельном файле, при необходимости.


--------------------
Болтовня ничего не стоит. Покажите мне код.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
GET  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



TERRAFORMING ENGINEER
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 3883
Пользователь №: 21196
На форуме: 6 лет, 10 месяцев, 19 дней
Карма: 87




Медведь
Спасибо.

Ну, короче, изменил порядок формирования блоков if/else так чтоб более родственные встали рядом и вуаля - нарисовались общие элементы, и код сократится вдвое, а то и вчетверо в некоторых местах.


--------------------
Не тот велик, кто не падал, а тот кто падал и поднимался.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
chee  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Сын полка
Сообщений: 1847
Пользователь №: 38654
На форуме: 3 года, 19 дней
Карма: 40




Цитата (GET @ 20.08.2016 - 04:52)
если всё красиво расписать около 1000 строк кода

зашквар. Проанализаровать задачу, провести декомпозицию, написать код, вот правильный путь. Сейчас же ты поступаешь как низкосортный кодер.


--------------------
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации

Мой блог
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 15118
Пользователь №: 4190
На форуме: 8 лет, 11 месяцев, 16 дней
Карма: 449




Цитата (GET @ 20.08.2016 - 04:52)
сделать один сборный запрос что-то типа такого:...
...например, в некоторых соединениях не делать JOIN из-за малого количества...

Сделай 2 шаблона - "сборных запроса", как ты их назвал. Один с джойном, другой без джойна smile.gif

Насчет 2-го варианта. Прикинь, что тебе как-нибудь понадобится добавить/убавить всего одно поле в списке полей. Тогда придется прошестить "овер 1000 строк кода"... Оно тебе нужно? А в первом варианте это будет сделано легко и просто.



--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Ron  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1110
Пользователь №: 41686
На форуме: 1 год, 5 месяцев, 14 дней
Карма: 19




Архитектура БД точно правильная? Что-то очень подозрительно.

Цитата (chee @ 20.08.2016 - 21:10)
Сейчас же ты поступаешь как низкосортный кодер.

Ну, знаешь, чтобы никто не заметил есть жеж ioncube. biggrin.gif

Если есть необходимость, запросы по типам выносятся в методы с говорящими названиями, где и формируются по входным данным. Там же все условия относящиеся непосредственно к лексике. Вот и всё.


--------------------
Жду 5.11.2017
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
GET  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



TERRAFORMING ENGINEER
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 3883
Пользователь №: 21196
На форуме: 6 лет, 10 месяцев, 19 дней
Карма: 87




Я взялся переписать этот скрипт потому как сейчас и сделано все по 1 варианту и ничего не понятно. По всему скрипту собираются его кусочки и в конце скрипта вдруг вылазит этот запрос SQL как Франкенштейн. Что? Откуда? Где? Почему так? Зачем делать JOIN, когда можно обойтись без него в некоторых запросах?

Вариант с 32 - запросами конечно не вариант. Но вариант с 12 запросами - это уже нормально. Главное мне, выдержать баланс между наглядностью, прозрачной логикой и универсальностью.

И как я написал выше - вопрос снят, будет нечто среднее из 12-16 запросов.


sergeiss
Да, я уже придумал, я там выше отписал, что сделал среднее между ними запросов стало намного меньше.


chee
Цитата
зашквар. Проанализаровать задачу, провести декомпозицию, написать код, вот правильный путь. Сейчас же ты поступаешь как низкосортный кодер.


Ну я стараюсь smile.gif Мне главное, чтоб было удобно работать в дальнейшим с этим скриптом, легко менять его, видеть что там.


Ron
Цитата
Архитектура БД точно правильная? Что-то очень подозрительно.


Сейчас выложу дамп, шоб ты оценил.

Цитата
Если есть необходимость, запросы по типам выносятся в методы с говорящими названиями, где и формируются по входным данным. Там же все условия относящиеся непосредственно к лексике. Вот и всё.


Зачем там ещё методы городить, ну куда понесло? Хочешь чтоб все было красиво, но забываешь о главном - что это просто не нужно - кодерские понты, отнимающие у скрипта время.

И причем здесь вообще ioncube, правда думаешь что мне есть дело до того, кто меня кем считает?





--------------------
Не тот велик, кто не падал, а тот кто падал и поднимался.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Ron  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1110
Пользователь №: 41686
На форуме: 1 год, 5 месяцев, 14 дней
Карма: 19




Цитата (GET @ 21.08.2016 - 03:48)
Сейчас выложу дамп, шоб ты оценил.

Ты главное бабло приготовь, если хочешь чтобы оценивал именно я. wink.gif

Цитата (GET @ 21.08.2016 - 03:48)

правда думаешь что мне есть дело до того, кто меня кем считает?

Уверен что да! =))

Цитата (GET @ 21.08.2016 - 03:48)
кодерские понты, отнимающие у скрипта время.

Это у тебя получается говнокод, отнимающий тонну времени каждый раз когда нужно подправить логику.

Much to learn you still have...



--------------------
Жду 5.11.2017
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
GET  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



TERRAFORMING ENGINEER
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 3883
Пользователь №: 21196
На форуме: 6 лет, 10 месяцев, 19 дней
Карма: 87






--------------------
Не тот велик, кто не падал, а тот кто падал и поднимался.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Ron  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1110
Пользователь №: 41686
На форуме: 1 год, 5 месяцев, 14 дней
Карма: 19




GET, правильно, даже и не слушай глупца! ))) Шариков тоже никого не слушал, даже Преображенского. Получать оскорбления от малограмотных людей, видимо, часть русских традиций.

Ты вот в детских коллажах преуспел, но в программировании что-то неочень. Нет бы заняться делом. А то тебя в группу приняли, но ты славы ей не приносишь, если честно. Да и тебе она не помогает, может быть лишь усиливает ЧСВ, что особенно противно.

И ты нам еще будешь говорить, что не важно мнение окружающих!? Думаешь я не помню как ты канючил членство в группе? Фаршманулся ты бро по полной программе, можешь еще пару раз меня оскорбить, по этому поводу. biggrin.gif



--------------------
Жду 5.11.2017
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
chee  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Сын полка
Сообщений: 1847
Пользователь №: 38654
На форуме: 3 года, 19 дней
Карма: 40




Ron, ты обвиняешь его в завышенном ЧСВ, а сам то уже потолок пробил своим ЧСВ.


--------------------
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации

Мой блог
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
GET  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



TERRAFORMING ENGINEER
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 3883
Пользователь №: 21196
На форуме: 6 лет, 10 месяцев, 19 дней
Карма: 87




Цитата
Ron, ты обвиняешь его в завышенном ЧСВ, а сам то уже потолок пробил своим ЧСВ.


Да он просто молодой еще, может даже немного глупый и неопытный.

У меня, к сожалению, совершенно сейчас нет времени сюда заходить и помогать людям, как мне помогали в свое время: twin, Invisible, inpost, Valick, FatCat, killer8080, sergeiss, Igor Vasilevsky, kaww и т.д. :
Всех можно посмотреть в этом
ролике
: или в
этом
https://rutube.ru/video/a58c164281f8e616e4a0ddd2297ee250/
, которые я делал в благодарность этому форуму. Да и я и сам многим не раз помогал и многие меня благодарили за это. И я не знаю как меня можно обвинить в ЧСВ, я никогда не Якаю...и не пишу, какой я там супер...

А то, что я в группу попросился дак чтоб форум оживить, там один Игорь был и всё. Сами видите, как посещение упало. И очень рад, что такие парни как Медведь, Zzipesh, Wind, Exotica к нам присоединились.

А глупый ты, Ron потому что ты до сих пор не научился уважать своих коллег, а чтоб научится надо не просто познать код, а посидеть месяцами, а то и годами вкладывая душу в свою мечту, будь это сайт, курсы программистов или даже работа просто работа, которую ты любишь.

Если хочешь я могу прислать тебе приглашение в группу, без всяких там обид. smile.gif


--------------------
Не тот велик, кто не падал, а тот кто падал и поднимался.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
inpost  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Помагите Здесь живу!!!
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 22766
Пользователь №: 20039
На форуме: 7 лет, 1 месяц, 15 дней
Карма: 600




GET
Вопрос из разряда: с какой ноги встать с кровати. Всякие условные конструкции лепим когда они нужны, типо собирательный запрос. А если к нескольким таблицам, но простой, то почему бы и не написать в одном запросе.
Я в целом в программировании понял единую истину, запреты создают только проблемы. Вечно пытаются что-то придумать, что-то запретить, типо "так грамотнее". Правильнее всего разнообразие, когда применяешь по смыслу код, ИМХО!


--------------------
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (4) [1] 2 3 ... Последняя » Ответ в темуСоздание новой темыСоздание опроса