[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Класс работы с БД
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18
waldicom
Цитата (paul85 @ 10.11.2013 - 20:22)
Как по мне, то doctrine демагогия похлеще теории Маркса. Все бы ничего, только нафиг не нужно. Как и нормальные формы хороши лишь на бумаге. А как только проект более или менее разрастается, все "денормализуют" данные. Быстренько причем! Строят в диком количестве линковочные таблицы и избыточность данных. Потому, что запрашивать ID клиента через 5 таблиц полный бред.

Ну про высоконагруженные да - там делают много "неправильных" вещей. Но это плата за быстродействие.

Цитата (paul85 @ 10.11.2013 - 20:22)
"Боевой сервер" - это я не понимаю что такое... Я знаю front-end и back-end.

Вы же разрабатываете/тестируете не на "боевом" сервере. Stage, test, preview... Не знаю, как такие вещи в России называют.

_____________
Свои мозги еще никто не отменял.
Телепатов нету.
waldicom
Цитата (Aeq @ 10.11.2013 - 20:36)
но про слонов с аватарки - это уже откровенный флуд! где модераторы?!

Фигасе! Тут на главного модератора наезжают... А он все не банит. Что вызывает подозрительность и невольное уважение.

_____________
Свои мозги еще никто не отменял.
Телепатов нету.
dr.nomore
Цитата (Aeq @ 10.11.2013 - 13:33)
Возвращается именно обычный нумерованный массив со значениями из указанной в запросе колонки. проверьте сами
$pdo_statement->fetchAll(PDO::FETCH_COLUMN);


Спасибо. Я перепутал с ::fetchColumn(). fetchAll'ов избегал до самого последнего момента, поэтому и в пдошную секцию полного отсоса данных не заглядывал.

Не очень понял, в смысле я правильно понял что вернется остаток колумны если итератор строк результа уже покачали?
dr.nomore
Цитата (paul85 @ 10.11.2013 - 18:46)
$db->query('SELECT * FROM example WHERE id=?i', array($_POST['id']), 'assoc');

Чтобы поднять уровень абстракции в коде, его сперва надо поднять в базе.

Ну вот самое тупое - откуда взять перевод закодированных имен полей на человеческий, для интерфейса? Есть такой изврат - пихать гуманные имена в каменты поля. Это не нормально, поскольку хак. Можно и сразу на гуманном, однако не все можно и все равно придется переводить с гуманного на другой гуманный в случае интернационализации. В модельку, ясень пень прописать, короче. Чпок и уровень абстракции, типа, подскочил.

$tb = new Table($table);


Что может узнать таблица про самое себя? Довольно много. Таблица может добавить в себя объекты поле. Объект поле знает про себя вполне достаточно, чтобы обеспечить нормальный интерфейс I/O (ввод/вывод) с валидацией и обеспечить нормальное представление себя в любом виде. Таблица знает где у нее pk, где uni, где a_i, где mul и все остальные ключи, каковые имеются. Таблица может построить составной ключ при отсутствии перечисленных.

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

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

$tb = new Table($table);

dr.nomore
Я одного не пойму, все пользовались теми или иными апликухами которые способны отредактировать любое поле любой таблицы в том числе запроса из нескольких, с полным фаршем проверок. Неужели не возникал вопрос - как это сделано без размножения моделек по образу и подобию табличек? И следующий: а нельзя ли расширить то, как это сделано так, чтобы сделать еще больше на том же уровне?

Применяем $tb;

// ввод
<input name="' . $tb->pk .  '"... // вы понятия не имеете какое имя у ключа

// процессинг

$tb->select($_POST); // объект его сам найдет



Поля перечислять не надо. Они выбраны на этапе создания инстанси по контексту который подготовил контроллер, по таблице правил для данного контекста. Лимиты писать не надо - они в конфиге, в конфиге из бд и/или из кукей. По умолчанию условие сравнения ($c) - равенство (=). Которое, наконец-то, выпадает в бизнес-логику подведомственную модели.

Таким образом это все что остается от типового запроса (псевдо)

select $f from $t where $k $c $v

остается (не псевдо)

$tb->select($_POST);

paul85
Цитата
И никто вышедший из школьного возраста не будет выдавать один сервер за другой.

Ну а как вы объясните версию сервера fantom 0.0.0, nginx 1.2.1, lighttpd 1.4.26, просто nginx без версии, nginx 1.4.3... И все это если побродить по сервисам яндекса... Все бы ничего, но вот nginx без версии и fantom 0.0.0 вызывают подозрение, что в яндексе собрались именно школьники. Это раз.

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

Согласитесь, одно дело ломать конкретный сервер конкретной версии (прочитать исходный код, попытаться найти дыры). Совершенно другое неизвестно что. А тем более ломать не то, что есть на самом деле. Довольно существенная степень защиты - зря вы о ней так...

Цитата
Ну и совсем мелочь, что nginx писался изначально для рамблера.

С чего вы взяли, что на рамблере работает именно та версия, которая выложена в интернете. Она может ничего общего не иметь по архитектуре с тем, что нам предлагается для скачивания. Тем более такая крупная организация как рамблер НАВЕРНЯКА позаботилась о правах на продукт.

Ха-ха-ха... Это как знаете, ходила хохма в свое время, якобы сайт microsoft.com крутится на апаче... biggrin.gif Точно так же нелепо предположить якобы яндекс использует поделки Сысоева. Ну вы что, в самом деле!? Уважаемый вроде человек... И вы поверили 3-му слайду что ли? Что у них банальная MySQL? Даже не Oracle? Хотя на самом деле, конечно же, своя...
inpost
paul85
Ну так историю бы почитал, ты говоришь, что у них свои разработки для своих проектов - окай, nginx и был разработкой для яндекса, просто в какой-то момент человек понял, что он сделал действительно крутой продукт на котором можно зарабатывать деньги больше, чем штатный сотрудник в офисе. Так и рождаются новые миллионеры.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
paul85
Цитата
Ну про высоконагруженные да - там делают много "неправильных" вещей. Но это плата за быстродействие.

Тогда вопрос: зачем себя ограничивать и запрашивать id через 5 таблиц, если все-равно потом придется добавлять этот самый id (поле) в нужную таблицу? Создавать избыточность таким образом. Вначале мучайся, пиши запросы огромные через кучу джоинов. А потом БАЦ, а оказывается и не надо было! )))

Хотя лично я больше сторонник линковочных таблиц. Как-то удобнее и в каком-то смысле НФ не нарушаются даже.

Цитата
Вы же разрабатываете/тестируете не на "боевом" сервере.

Ааа, в этом смысле. Не знаю кто переходит. И никому не посоветую, кстати, это делать, дабы не огрести проблем с deployment. От апача, скорее всего, откажутся на хостингах очень нескоро. У меня-то вообще полная архитектура собрана front-end/back-end. Своя зона .hm. Например разрабатываю проект example.ru. На моей площадке он называется example.hm. Очень удобно!
paul85
Цитата
человек понял, что он сделал действительно крутой продукт на котором можно зарабатывать деньги

inpost, да чем он классный-то я никак не пойму!? wink.gif) Тем что тормознутый? Сам Сысоев лепит на конференциях, что его сервер ничем не лучше конкурентов. Лишь удобный формат конфиг-файла, хотя тут субъектив чистой воды. Для меня ГОРАЗДО прозрачнее синтаксис лайти.
inpost
paul85
Ещё раз, ты про практику личную говоришь на высоконагруженном проекте о тормознутости? Или кто-то где-то ляпнул и ты запомнил просто?

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
1
Цитата (inpost @ 11.11.2013 - 19:17)
paul85
Ещё раз, ты про практику личную говоришь на высоконагруженном проекте о тормознутости? Или кто-то где-то ляпнул и ты запомнил просто?

Конечно кто то ляпнул а он запомнил wink.gif
Так сейчас у половины каша в голове вместо знаний.

У тому же этот Пауль это же тот уникальный админ который в москве ни смог себе ничего соответствующего его проф уровню найти и решил попробовать с php. Супер гуру наоборот.
paul85
inpost, к сожалению у меня не было высоконагруженных проектов. Существует такая штука, называется "Прометей". В чем суть? Обыкновенный сайт на ASP для дистанционного обучения. Там экзамены и прочая лабудень. На нем зарегистрировано тысяч 5 студентов, ходят сдают тестики и прочее. Так вот, чтобы не выставлять наружу IIS, я его прикрыл сначала нгинксом. Ну нормально работает и работает и бед не знал. Но потом почему-то поставил лайти (уже не помню из-за чего) и увидел прирост в скорости весомо-грубо-зримо. Существенный прирост, который хорошо ощущается без всякого секундомера.

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

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.