Мнения по запросам: * или список полей

D_A_S

Новичок
Мнения по запросам: * или список полей

День добрый,

Зашел у нас с коллегой спор о том, как лучше писать имена выбираемых переменных в SQL-запросах.

Коллега, указывая на меньшую ресурсоемкость, обеими руками за перечисление выбираемых переменных, будь то 1,5,15 полей...
Я же считаю, что в данном случае чуть бОльшую затратность можно проигнорировать для удобства программиста в простых запросах, и выбирать конкретные поля только в случае запроса по нескольким таблицам.

Кто что считает по этому поводу?
 

sad

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

D_A_S

Новичок
sad
если их больше 10, глаза начинают разбегаться :-( И неудобно дописывать код если в выводе приходится что-то изменять/добавлять.
 

sad

Новичок
а кто мешает записывать запрос в удобочитаемом виде?
Код:
select
  field1,
  field2,
  field2
from
  table1,
  table2
where
  ...
 

Never

Новичок
ИМХО, но логично перед получением данных, сделать запрос к ним. И я не могу понять те секундные затраты, которые уйдут на дописывание sql запроса. Здесь принципиальна не скорость, а сам стиль написания кода: все понятно, что и откуда берется.

Тот самый коллега.
 

D_A_S

Новичок
sad
ммм, вариант :) но * удобнее в случае добавления полей в БД, так как не приходится дописывать новые поля в запрос.
И опять же все понятно откуда и что берется :)
 

Never

Новичок
D_A_S, ок.
Ситуация. надо выбрать из 20 колонок 3. Мы пишем звездочку?
разумнее писать сразу те колонки, из которых нужно получить данные, ведь согласись.
 

D_A_S

Новичок
Never
а если надо 15? а потом понадобится увеличивать до 20? ;)

Исправления придется делать не только в выводе данных, но и в запросе.
 

Never

Новичок
Т.е., в моем случае ты согласен, что не стоит использовать *?

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

-~{}~ 03.04.06 13:22:

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

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

D_A_S

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

MD

Guest
D_A_S, а когда тебе в таблицу добавят пару столбцов BLOB, ты тоже будешь * вытягивать? :)
не умно это.
 

D_A_S

Новичок
MD
Данные, которые хранятся в базе, все же определяются программистом ИМХО.
И не вижу смысла пихать в БД что-либо больше средней статьи - с остальным справляется файл-система.
 

MD

Guest
Автор оригинала: D_A_S
Данные, которые хранятся в базе, все же определяются программистом ИМХО.
И не вижу смысла пихать в БД что-либо больше средней статьи - с остальным справляется файл-система.
про данные, это идеальный случай. а они далеко не всегда идеальные.
ну и стандартно, если я где-то не вижу смысла, это не значит, что его там нет .. :)
 
Сверху