Дмитрий Войциховский
2128 сообщений
#15 лет назад
Цитата ("elosoft"):
А для этого есть администратор сервера БД.

Что-то я перестал Вас понимать... то ли умельцы могут от фонаря таблицы удалять через phpMyAdmin, то ли администратор БД должен чего-то там предусматривать...
У меня прямо перед глазами такой образ возникает: умельцы бегают и пытаются удалять таблицы, а администратор БД за ними бегает и по рукам их, по рукам!
Я-то как раз всегда по наивности своей предполагал, что в phpMyAdmin кто попало доступ не имеет, и уже тем более такие умельцы, что не знают, что такое поле, но при этом могут на ровном месте drop table написать...
Евгений О.
2989 сообщений
#15 лет назад
Теперь я чего-то не понял...
PhpMyAdmin должен работать не под root и его функции можно ограничить как угодно. Вот это должен и сделать для начала админ.
Дмитрий Войциховский
2128 сообщений
#15 лет назад
Цитата ("elosoft"):
PhpMyAdmin должен работать не под root и его функции можно ограничить как угодно.

Ну это очевидно.
Но каким образом умелец с кривыми руками вообще сможет попасть в PhpMyAdmin? Может, я чего-то в этой области не до конца изучил?
Евгений О.
2989 сообщений
#15 лет назад
Цитата ("raznomir"):
Но каким образом умелец с кривыми руками вообще сможет попасть в PhpMyAdmin?

Ну это и есть функции администратора. Чтобы соответсвующие ресурсы и программы были доступны тем, кому надо. Это так надо на "нормальном" сервер админить .
Но поскольку речь тут идет в основном о вебе (проще говоря о сайтах), то там в 9 случаев из 10 один доступ ко всему: и к панели управления, и к PhpMyAdmin'у. В этом случае у пользователя почти всегда есть возможность добраться почти до всего.
Дмитрий Войциховский
2128 сообщений
#15 лет назад
Цитата ("elosoft"):
В этом случае у пользователя почти всегда есть возможность добраться почти до всего.

Ну каким образом?????????
Вот в упор не вижу варианта, кроме прямой раздачи кому ни попадя ссылок на phpMyAdmin плюс логин плюс пароль плюс имя базы...
Андрей К.
1172 сообщения
#15 лет назад
Ни разу заказчик не регистрировал хостинг на себя? Правда что ли?
Евгений О.
2989 сообщений
#15 лет назад
Давайте уточним. Мы все же о программировании говорим. И под пользователем я подразумеваю человека, который по-крайней мере может отправлять прямые запросы к БД.
Вадим Т.
3240 сообщений
#15 лет назад
Цитата ("raznomir"):
Пункты 1, 3 и 5 Вашего списка важных принципов организации БД элементарно выдерживаются и в иных вариантах реализации, а не только "канонических".

Не принимается. Это общие слова.
Можете ли написать, по каждому из пунктов 1, 3 и 5, как именно это выдерживается в Вашем варианте с таблицей с кучей колонок?

Цитата ("raznomir"):
Пункт 2 и 4 - уже не вижу смысла выдерживать, более того, если Вы почитаете другие умные книжки (поновее), а также подключите и логическое мышление, то обнаружите, что правильно построенная избыточность и дублирование данных как раз повышает надежность и целостность БД, а также скорость работы с ней.

"Умные книжки поновее" — это что? Приведите пожалуйста пример.
Далее. Подключив логическое мышление, как Вы мне советуете, я так и не обнаружил, как именно избыточность и дублирование NULL значений в Вашем примере могут повысить "надежность и целостность".
Вы же только пустые места размножили в своих колонках, но никак не данные о цене по региону.
И вообще, причем тут целостность, почему Вы о ней написали в этом пункте?
Далее... Для повышения надежности есть другие методы, а избыточность в БД используется в основном для повышения производительности (см. тот же Ваш пример с вычисляемыми значениями, где это имеет смысл), если, конечно, бизнес логика проекта не требует иного. Но это не Ваш случай.

Цитата ("raznomir"):
В частности, если у нас есть вычисляемые значения, что редко меняются, но часто запрашиваются для вывода на сайт, то есть смысл хранить уже вычисленные значения, а не по 1000 раз в минуту заставлять бедный сервер пересчитывать одно и то же. Тем более, если сам расчет более-менее сложен и действительно нагружает сервер.

С этим никто не спорит. Я или кто-то другой разве говорили обратное? Только к Вашей задаче-примеру это не имеет никакого отношения.

Сожалею, но вынужден признать, что в вопросах работы с БД у Вас есть весьма серьезные пробелы в знаниях. Рекомендую подтянуть этот вопрос.
А пока что я бы не рекомендовал заказчикам поручать Вам проектировать БД для их проектов.
Дмитрий Войциховский
2128 сообщений
#15 лет назад
Цитата ("elosoft"):
Давайте уточним. Мы все же о программировании говорим. И под пользователем я подразумеваю человека, который по-крайней мере может отправлять прямые запросы к БД.

Каким образом он может отправлять?
И вообще, вроде о доступе к phpMyAdmin говорили...
Дмитрий Войциховский
2128 сообщений
#15 лет назад
Оффтопик
Цитата ("tvv"):
А пока что я бы не рекомендовал заказчикам поручать Вам проектировать БД для их проектов.

Ну раз уж Вы позволили себе перейти на личности, то и я перейду черту. Прочитав перечень ваших COMPUTING SKILLS, я понял, что на самом деле Вы "знаете" как бы все, а на самом деле ничего... Так что не Вам оценивать мои знания в БД, и не Вам раздавать рекомендации заказчикам - они уж как-нибудь сами разберутся.

Особенно вот это развеселило:
Цитата:
Web development: Perl, PHP, XML, XHTML, CGI, AJAX, Web services, CMS

Как говорится, найдите лишнее...
Евгений О.
2989 сообщений
#15 лет назад
Цитата ("raznomir"):
Каким образом он может отправлять?
И вообще, вроде о доступе к phpMyAdmin говорили...

Мы говорили об ускорении получения данных из БД и как сохранить целостность данных в различных ситуациях. PhpMyAdmin я привел для примера, что заранее никогда нельзя полностью проконтролировать действия пользователя и что вопрос контроля и сохранения даннных надо решать на разных уровнях: контроль реальных запросов (например непосредственно в скриптах), "выдача" правильных прав пользователю, правильное администрирование сервера и т.д. и т.п.
Дмитрий Войциховский
2128 сообщений
#15 лет назад
Цитата ("elosoft"):
Мы говорили об ускорении получения данных из БД...

Знаете... если мы будем правильно в доме расставлять мебель, навешивать решетки на форточки и ставить бронированные двери, и при этом ключи от дома раздавать кому попало, или и того круче, если в доме одной стены внешней не будет, то толку с правильного расставляния мебели...
В-общем, так и не понял, каким образом возможность добавления колонки в таблицу из скриптов напрямую связано с возможностью drop table из phpMAdmin...
Ну в целом согласен, что контроль нужен на разных уровнях, так я и не спорил с этим...
Евгений О.
2989 сообщений
#15 лет назад
Цитата ("raznomir"):
В-общем, так и не понял, каким образом возможность добавления колонки в таблицу из скриптов напрямую связано с возможностью drop table из phpMAdmin...

С PhpMyAdmin это никак не связано. Это связано с тем, что для выполнения этого действия у пользователя должны быть права на alter table. А это уже представляет потенциальную угрозу для внедрения в запрос нежелательных элементов.
Вадим Т.
3240 сообщений
#15 лет назад
raznomir, все же, пожалуйста ответьте на мои вопросы, не уклоняйтесь от ответа. Пока что Вы так и не показали Ваших знаний.
Дмитрий Войциховский
2128 сообщений
#15 лет назад
Цитата ("elosoft"):
С PhpMyAdmin это никак не связано. Это связано с тем, что для выполнения этого действия у пользователя должны быть права на alter table. А это уже представляет потенциальную угрозу для внедрения в запрос нежелательных элементов.

Ага, хоть понял, к чему, уже хорошо.
Да, права на alter table надо. Но вот внимание, вопрос: для данной конкретной задачи, у всех ли подряд пользователей сайта вообще будет право добавлять новые методы доставки? Или только у администратора сайта, ну или еще каких-то там особых менеджеров? И что мешает сделать для обычных посетителей сайта и администраторов сайта различных пользователей БД с различными правами доступа?
Но даже если без этого разделения, где там взялась угроза для внедрения в запрос нежелательных элементов?
Можете хотя бы на примере, что ли, или как-то поподробнее, а то я лично этой угрозы не наблюдаю?
Дмитрий Войциховский
2128 сообщений
#15 лет назад
tvv, а разве я обязан Вас обучать?
Вадим Т.
3240 сообщений
#15 лет назад
Цитата ("raznomir"):
Ну раз уж Вы позволили себе перейти на личности, то и я перейду черту. Прочитав перечень ваших COMPUTING SKILLS, я понял, что на самом деле Вы "знаете" как бы все, а на самом деле ничего... Так что не Вам оценивать мои знания в БД, и не Вам раздавать рекомендации заказчикам - они уж как-нибудь сами разберутся.

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

Цитата ("raznomir"):
Особенно вот это развеселило:
Цитата:
Web development: Perl, PHP, XML, XHTML, CGI, AJAX, Web services, CMS

Как говорится, найдите лишнее...

И чем же Вас развеселил небольшой перечень технологий, которые я использую?
(Вообще, я выбрал именно эти ключевики, чтобы заказчикам было проще меня находить в поисковиках, ничего плохого в этом не вижу, на самом же деле список используемых мной технологий намного больше).
Евгений О.
2989 сообщений
#15 лет назад
Цитата ("raznomir"):
Можете хотя бы на примере, что ли, или как-то поподробнее, а то я лично этой угрозы не наблюдаю?

Нет, я не готов обсуждать здесь проблемы безопасности запросов и особенности работы серверов БД. Уж больно широооокая тема да и статей на эту тему полно.

ps Представьте простейшую ситуцию - имя нового поля совпало и именем таблицы...
Вадим Т.
3240 сообщений
#15 лет назад
Цитата ("raznomir"):
tvv, а разве я обязан Вас обучать?

Вы мне ничем не обязаны.
Я задал Вам вопросы по Вашему же примеру и по Вашим же утверждениям, Вы не ответили.
Скорее всего потому,что не можете ответить, другой причины я не вижу (скорее всего, Вы не достаточно ясно представляете себе, зачем нужна нормальзация). Не более чем.
Если я не прав, пожалуйста развейте мои сомнения, и ответьте на вопросы.
Но Вы не обязаны это делать, конечно.
Дмитрий Войциховский
2128 сообщений
#15 лет назад
Цитата ("elosoft"):
Нет, я не готов обсуждать здесь проблемы безопасности запросов и особенности работы серверов БД. Уж больно широооокая тема да и статей на эту тему полно.

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