Главная страница


ru.unix

 
 - RU.UNIX ----------------------------------------------------------------------
 From : Dennis Melentyev                     2:5020/400     03 Dec 2000  16:42:07
 To : All
 Subject : Re: Re: FreeBSD + MySQL = тапки?
 -------------------------------------------------------------------------------- 
 
 On Wed, 29 Nov 2000 01:37:51 +0300, Alex Korchmar wrote:
 
 >Hi Victor!
 >At Sun, 26 Nov 00 03:32:00 +0300 Victor Wagner <vitus@wagner.rinet.ru> wrote:
 >
 > VW>>>  join-ов мешает. Сильно. И только с появлением PostgreSQL 7.0 - раньше
 > VW>>>  там FOREIGN KEYS не было. А как же без них?
 >AK>> А как с ними? В смысле, расскажи мне, тупому, чем поддержка foreign keys 
 >AK>> _базой_ тебе / юзеру поможет? 
 > VW> Алекс, мне очень захотелось послать тебя читать, ну даже не Дейта, а
 >Алекс читал Дейта. Hо считает, что  в реальной жизни принудительное
 >соблюдение ссылочной целостности скорее мешает, чем помогает. И попросил тебя
 >привести пример - тоже из реальной жизни - где именно в твоей софтине и как
 >это используется. В ответ получил еще на две страницы абстрактных рассуждений.
 
 Ускорение доступа по foreign key (как по прямой ссылке на запись) уже не
 интересно? Конечно, можно хранить эту ссылку еще одним полем, помнить о ней,
 и т.д., но зачем мне помнить все 137 таблиц в 3х тейбл спейсах и это не
 считая еще пары десятков вьюх? Да ну его лесом, пусть юзверь подождет лишнюю
 долю секунды.
 
 К тому-же, в ряде других больших коммерческих проектов, мы не можем
 гарантировать 100% чистоту кода и отсутствие багов. Поэтому, для меня эти
 констреинты по кр. мере ловушки от собственных глюков. Хотя для системы
 учета траффика это и нахрен не сдалось. 
 
 Если говорить и сравнивать, необходимо определить круг задач. Т.к. решения 
 о СУБД принимаются _ТОЛЬКО_ исходя из задачи. 
 
 >
 > VW> Мне она поможет тем, что при любых действиях пользователя база останется
 > VW> в консистентном состоянии без малейших на то моих (как программиста)
 >расскажи мне, темному, какие действия пользователя могут нарушить data
 >consistence в базе без foreign keys? Кроме действия "влез sql консолью 
 >и поназаписал херни", разумеется. Твоя программа такие действия позволяет?
 >С чего бы это? И что происходит, когда в базе есть constrain'ы ? Программа
 >падает? Вытряхивает юзеру совершенно непонятные ему ошибки sql'я? Ты
 
 Зачем юзеру SQL'ные ошибки, их пишут в логи, для девелоперов. А юзверю можно
 и более человеческое лицо показать ;)
 
 >проверяешь, прежде, чем апдейтить базу, не нарушено ли условие? Логика работы
 >программы не позволяет такого в принципе? 
 >В последних двух случаях ограничения (не только внешние ссылки, но и
 >любые другие - типичный пример - "not null") фактически нафиг не нужны,
 >ибо дублируются логикой программы. В остальных мы имеем не программу,
 >а какой-то полуфабрикат.
 
 Hе проверяю в большинстве случаев. Ибо если нулл - у меня в базе
 дефолт лежит, и мне его по сетке гнать не надо, если не нулл - так мне
 просто пофигу, буду я еще один селект делать для проверки, гнать его по
 сетке, проверять, как-же. А если база подсобойная, так там и систем нет
 особых. В большинстве своем - трафик посчитать, да статистику сгенерить. 
 
 По поводу полуфабриката - в 3х уровневой клиент-сервер очень тяжело
 предположить, с какой целью будут иметь твой объект через 3 года активного
 девелопинга. Мне проще и дешевле возложить это на базу. Если надо, пришлю
 клиенту скриптец с альтерами и иже с ними.
 
 >
 > VW> Мне как админу, реализация _всех_ ограничений целостности на уровне
 > VW> базы, поможет тем, что я могу влезть в свою базу sqlplus-ом, или с
 >если ты админ - то какого хрена ты лезешь руками в базу, не зная ее структуры?
 >А если зная - каким раком можно сделать такое?
 
 Сколько таблиц? Сколько баз? и т.д.
 
 >
 > VW> соседней виндовой машины MS-Query из  Excel-я и все что угодно там
 > VW> менять. И база опять-таки останется в консистентном состоянии.
 >ага, только карточка с координатами клиента автоматически убьется,
 >потому что ее references что-то, что ты посчитал кривым и стер. Вот
 >юзеры-то будут благодарны... По-моему, уж лучше поиметь "зависшую"
 >запись - ее хотя бы тем же макаром можно будет потом найти.
 
 И поиметь на этом еще десяток кривых отчетов, воплей с соплями и корвалолом
 для главбухши и полным несхождением дебета с кредитом? - увольте.
 Тем более, никто cascade delete не заставляет делать. Можно просто
 обматерить юзверя при попытке сделать это.
 
 >
 >То есть, для чего нужны транзакции - я примерно представляю. А вот ограничения
 >лично мне полезны в двух случаях: для самодокументированности кода (т.е. на 
 >самом деле мне плевать, если они останутся только на бумаге), и для отладки
 >недоотлаженного (тогда я и правда буду получать в морду sqlные ошибки, и 
 >мне они будут полезны).
 
 Особенно, когда твой проект _ВЕЧHАЯ_ бета, спасибо Президентам, парламентам,
 правительствам, налоговым, нацбанкам и т.д.
 
 >Hи то, ни другое не мешает отлаженную и оттестированную программу
 >эксплуатировать на базе без ограничителей.
 
 У меня такой программы не бывает ;)
 
 -- 
                             Dennis Melentyev 
                 C/C++ programmer @ Mebius-KB, Kiev, Ukraine
                         dennis@mebius-kb.kiev.ua 
 
 --- ifmail v.2.15dev5
  * Origin: Mebius-KB (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: Re: FreeBSD + MySQL = тапки?   Dennis Melentyev   03 Dec 2000 16:42:07 
Архивное /ru.unix/16505e712681f.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional