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


ru.unix

 
 - RU.UNIX ----------------------------------------------------------------------
 From : Victor Wagner                        2:5020/219.27  01 Dec 2000  11:19:03
 To : Alex Korchmar
 Subject : Re: FreeBSD + MySQL = тапки?
 -------------------------------------------------------------------------------- 
 
 From: vitus@wagner.rinet.ru (Victor Wagner)
 
 Alex Korchmar <Alex_Korchmar@p65.f423.n5020.z2.fidonet.org> wrote:
 
 AK> Hi Victor!
 AK> At Sun, 26 Nov 00 03:32:00 +0300 Victor Wagner <vitus@wagner.rinet.ru>
 AK> wrote:
 
  VW>>>>  join-ов мешает. Сильно. И только с появлением PostgreSQL 7.0 - раньше
  VW>>>>  там FOREIGN KEYS не было. А как же без них?
 AK>>> А как с ними? В смысле, расскажи мне, тупому, чем поддержка foreign keys 
 AK>>> _базой_ тебе / юзеру поможет? 
  VW>> Алекс, мне очень захотелось послать тебя читать, ну даже не Дейта, а
 AK> Алекс читал Дейта. Hо считает, что  в реальной жизни принудительное
 AK> соблюдение ссылочной целостности скорее мешает, чем помогает. И попросил
 AK> тебя привести пример - тоже из реальной жизни - где именно в твоей софтине и
 AK> как это используется. В ответ получил еще на две страницы абстрактных
 AK> рассуждений.
 
  VW>> Мне она поможет тем, что при любых действиях пользователя база останется
  VW>> в консистентном состоянии без малейших на то моих (как программиста)
 AK> расскажи мне, темному, какие действия пользователя могут нарушить data
 AK> consistence в базе без foreign keys? Кроме действия "влез sql консолью 
 AK> и поназаписал херни", разумеется. Твоя программа такие действия позволяет?
 
 AK> С чего бы это? И что происходит, когда в базе есть constrain'ы ? Программа
 
 Зачем падает? Exception ловит.
 
 AK> падает? Вытряхивает юзеру совершенно непонятные ему ошибки sql'я?
 
 Это есть. Все никак не соберусь прикрутить табличку расшифровки
 констрейнтов.
 AK> проверяешь, прежде, чем апдейтить базу, не нарушено ли условие? Логика
 AK> работы
 
 Hет, проще отвалить транзакцию. 
 
 Либо по нарушению referential integrity,  либо по возникновению
 исключения в каком триггере. Проверить условие, когда апдейт приводит к
 последовательному взлетанию трех-четырех триггеров, каждый из которых
 пишет в следующую таблицу, со своими триггерами и условиями - благодарю
 покорно. Этак каждый апдейт будет занимать минут несколько.
 AK> программы не позволяет такого в принципе? 
 AK> В последних двух случаях ограничения (не только внешние ссылки, но и
 AK> любые другие - типичный пример - "not null") фактически нафиг не нужны,
 AK> ибо дублируются логикой программы. В остальных мы имеем не программу,
 AK> а какой-то полуфабрикат.
 
 По-моему правильный подход не "дублируются" а "анализируются" логикой
 программы. А система у меня и правда "полуфабрикат" - среда разработки.
  VW>> Мне как админу, реализация _всех_ ограничений целостности на уровне
  VW>> базы, поможет тем, что я могу влезть в свою базу sqlplus-ом, или с
 AK> если ты админ - то какого хрена ты лезешь руками в базу, не зная ее
 AK> структуры? А если зная - каким раком можно сделать такое?
 
 Структура базы она вещь динамическая и на ходу меняется.
  VW>> соседней виндовой машины MS-Query из  Excel-я и все что угодно там
  VW>> менять. И база опять-таки останется в консистентном состоянии.
 AK> ага, только карточка с координатами клиента автоматически убьется,
 AK> потому что ее references что-то, что ты посчитал кривым и стер. Вот
 
 Если немножко думать при создании констрайта, то не убъектся, а как раз
 наоборот - не даст убить то, что посчитал кривым. И ты с удивлением
 узнаешь, что оказывается оно было нужно.
 AK> юзеры-то будут благодарны... По-моему, уж лучше поиметь "зависшую"
 AK> запись - ее хотя бы тем же макаром можно будет потом найти.
 
 AK> То есть, для чего нужны транзакции - я примерно представляю. А вот
 AK> ограничения лично мне полезны в двух случаях: для самодокументированности
 AK> кода (т.е. на самом деле мне плевать, если они останутся только на бумаге), 
 AK> и для отладки недоотлаженного (тогда я и правда буду получать в морду sqlные
 AK> ошибки, и мне они будут полезны).
 AK> Hи то, ни другое не мешает отлаженную и оттестированную программу
 AK> эксплуатировать на базе без ограничителей.
 
 Мешает. То что я уже писал - что когда вставка/удаление в таблицу
 порождает цепочку каскадных действий, то делать их руками, гоняя эту
 информацию через сокет между сервером приложений и сервером бд, сложнее
 чем делать это внутри БД.
 
 В принципе, это просто принципиально разный подход к работе. Ты пишешь
 программу, которая что-то делает с данными. А я дизайню структуру
 данных, которая самоподдерживается, а потом привешиваю к ней некие
 интерфейсы.
 
 -- 
 Turn right here. No! NO! The OTHER right!
 --- ifmail v.2.14.os-p7
  * Origin: Where is your mouse [/dev/Wagner's home (2:5020/219.27@fidonet)
 
 

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

 Тема:    Автор:    Дата:  
 Re: FreeBSD + MySQL = тапки?   Michael Samanov   18 Nov 2000 15:43:55 
 FreeBSD + MySQL = тапки?   Juriy Goloveshkin   18 Nov 2000 18:03:15 
 Re: FreeBSD + MySQL = тапки?   Michael Samanov   18 Nov 2000 23:33:19 
 FreeBSD + MySQL = тапки?   Juriy Goloveshkin   19 Nov 2000 01:33:23 
 Re: FreeBSD + MySQL = тапки?   Michael Samanov   19 Nov 2000 13:42:28 
 FreeBSD + MySQL = тапки?   Juriy Goloveshkin   19 Nov 2000 19:19:06 
 Re: FreeBSD + MySQL = тапки?   Andrew Filonov   20 Nov 2000 13:45:10 
 Re: FreeBSD + MySQL = тапки?   Michael Samanov   20 Nov 2000 16:42:23 
 FreeBSD + MySQL = тапки?   Slawa Olhovchenkov   20 Nov 2000 17:36:34 
 Re: FreeBSD + MySQL = тапки?   Valentin Nechayev   20 Nov 2000 20:25:11 
 FreeBSD + MySQL = тапки?   Slawa Olhovchenkov   20 Nov 2000 21:13:36 
 Re: FreeBSD + MySQL = тапки?   Alexei Ivanov   21 Nov 2000 00:53:36 
 FreeBSD + MySQL = тапки?   Slawa Olhovchenkov   21 Nov 2000 10:29:12 
 Re: FreeBSD + MySQL = тапки?   Andrew Filonov   21 Nov 2000 19:38:30 
 FreeBSD + MySQL = тапки?   Slawa Olhovchenkov   21 Nov 2000 21:12:16 
 Re: FreeBSD + MySQL = тапки?   Andrew Filonov   21 Nov 2000 22:46:23 
 FreeBSD + MySQL = тапки?   Slawa Olhovchenkov   22 Nov 2000 00:39:32 
 Re: FreeBSD + MySQL = тапки?   Andrew Filonov   22 Nov 2000 16:38:58 
 Re: FreeBSD + MySQL = тапки?   Victor Wagner   20 Nov 2000 10:35:11 
 FreeBSD + MySQL = тапки?   Igor Mikhailov   22 Nov 2000 22:19:34 
 Re: FreeBSD + MySQL = тапки?   Victor Wagner   23 Nov 2000 11:43:35 
 Re: FreeBSD + MySQL = тапки?   Alex Korchmar   25 Nov 2000 02:34:49 
 Re: FreeBSD + MySQL = тапки?   Victor Wagner   26 Nov 2000 04:32:00 
 Re: FreeBSD + MySQL = тапки?   Victor Wagner   26 Nov 2000 04:42:34 
 Re: FreeBSD + MySQL = тапки?   Alex Korchmar   29 Nov 2000 02:39:46 
 Re: FreeBSD + MySQL = тапки?   Alex Korchmar   29 Nov 2000 02:37:51 
 Re: FreeBSD + MySQL = тапки?   Victor Wagner   01 Dec 2000 11:19:03 
 FreeBSD + MySQL = тапки?   Aleksey Fedorov   24 Nov 2000 13:33:23 
 FreeBSD + MySQL = тапки?   Slawa Olhovchenkov   19 Nov 2000 20:17:46 
 Re: FreeBSD + MySQL = тапки?   Serg Oskin   20 Nov 2000 14:00:16 
 FreeBSD + MySQL = тапки?   Juriy Goloveshkin   20 Nov 2000 15:07:03 
 FreeBSD + MySQL = тапки?   Slav Matveev   20 Nov 2000 16:36:19 
 Re: FreeBSD + MySQL = тапки?   Michael Samanov   20 Nov 2000 16:48:45 
 Re: FreeBSD + MySQL = тапки?   Philipp Patrushoff   21 Nov 2000 20:39:09 
 FreeBSD + MySQL = тапки?   Igor Mikhailov   19 Nov 2000 07:16:34 
Архивное /ru.unix/151784502307e.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional