Article View: pl.comp.bazy-danych
Article #195347Re: [OT] Re: Baza ok 2500 tabel.
From: Adam
Date: Mon, 10 Jul 2017 21:07
Date: Mon, 10 Jul 2017 21:07
156 lines
7937 bytes
7937 bytes
W dniu 2017-07-10 o 19:47, wloochacz pisze: > W dniu 2017-07-05 o 15:21, Adam pisze: >> W dniu 2017-07-05 o 13:30, wloochacz pisze: >>> W dniu 2017-06-20 o 15:20, Adam pisze: >>> /ciach/ >>> >>>> Natomiast Symfonia czy jakieś tam Inserty mają oprócz tego, co >>>> napisałeś jeszcze sporo innych problemów. Najpoważniejsze: brak >>>> spójności systemu. Bywa u klientów, że towar zostanie pobrany na >>>> dokument, a nie zejdzie ze stanu magazynowego. >>>> >>>> W przypadku Optimy, CDN-XL czy Enovy - o spójność baz danych dbają >>>> triggery. >>> No popatrz, mam bazę Enovy (stan na rok 2015, ale nie sadzę aby były aż >>> tak poważne zmiany) pod ręką i nie ma w niej ani jednego triggera. >>> Tak wszystko co piszesz poniżej w kontekście Enovy, nie jest >>> prawdziwe... >> >> Aż zobaczyłem do jakiejś bazy: > /ciach/ > >> itd - 490 rekordów. > No i co tam zobaczyłeś, bo nic z tego nie rozumiem... > Wylistowałem triggery z bazy danych Enovy, baza z roku 2014. >> Optimka ma 272, CDN-XL ma 852. >> Zresztą do XL masz dokumentację, podsyłałem Ci kiedyś. > Pisałem o Enovie, a Ty mi tu pokazujesz XL. > A to, że "logika" w ERP XL jest w bazie danych, to jasne. W Enovie chyba też. Mam tylko kilku klientów z Enovy, robionych zresztą "z doskoku". Od ładnych kilku lat jakoś nie mogę się zebrać, aby skoczyć do Roberta podpisać umowę. W każdym razie bazy Enovy nie naprawiałem, nie znam jej tak, jak baz dawnego CDN-u. > Burdel z tym taki, że łooo matko... Dopóki nie zatrudniali studentów, i dopóki CDN to był CDN a nie jakiś Comarch, to było dobrze :( > A najlepiej jest wtedy, gdy mam na przestrzeni kilku lat, kilka firm > obsługujących ten sam system u klienta (tzw. fakt autentyczny i dotyczy > ERP XL), robi własne zmiany w triggerach. Niestety, czasem nawet do wydruku w Crystalu trzeba podpiąć pod bazę dodatkowe tabele i triggery. Mam tak w jednej specyficznej firmie - obrót "żelastwem" na budowy (kształtowniki, ramy, pojemniki, pręty, itp). > Każda z tych firm grzebie sobie w bazie jak im się podoba. > Po kilkunastu takich zmianach, nikt tak naprawdę nie wie co w tym > trigger-hell się dzieje i kiedy się dzieje... > Najgorzej to przejąć takiego klienta. Robi się dla niego jakiś dodatkowy wydruk lub mniej typowy obieg dokumentów, i to, co chodzi na bazach testowych albo u innych klientów, u niego nie chce :( >>>> Albo cała transakcja (w znaczeniu ścieżki logicznej zdarzeń) >>>> przejdzie, albo cała zostanie wycofana. Nawet, gdybym grzebał >>>> bezpośrednio w tabelach z danymi, transakcje są spójne, albo trigger >>>> nie pozwoli zmienić pola, gdy pozostałe warunki nie są zachowane. >>>> Jest to bardzo dobre dla serwisantów. >>> Dobre dla serwisantów? >>> A co to za serwisant, który grzebie w bazie nie wiedząc jakie będę tego >>> konsekwencje dla całego systemu? >>> >>> Taki "serwisant" niech lepiej trzyma lepkie łapki blisko siebie... >> >> E, tam, nie przesadzaj. > Jasne, ale mam inną opinię. > >> Przykładowy trigger dotyczący elementu transakcji (np. faktury) poniżej. > Myślę, że ten trigger jest z definicji zjebany. > Wziąłem pierwszy lepszy z brzegu, tam gdzie mi kursor myszki w Management Studio stanął. > Select top 1? > A co w przypadku, kiedy insert będzie batchowy i będzie więcej niż jeden > rekord wkładany w tym samym czasie? Z tego, co na szybko popatrzyłem to TOP 1 wskazuje na typ i rodzaj dokumentu. Dokument może być tylko i wyłącznie jednego rodzaju czy typu i nie podlega zmianom. Tu akurat IMO nie ma błędu. Zresztą te flagi są zakładane w momencie inicjacji rekordu, a rekord jest blokowany na wyłączność w trakcie inicjalizacji. > > Dlatego powtórzę: "Taki "serwisant" niech lepiej trzyma lepkie łapki > blisko siebie..." > Na co Ty - nie przesadzaj... > >> Myślisz, że bez triggera ktoś by to zapamiętał? > Tak, ale to wymaga programowania w ERPie, a nie w jego bazie. > A później ktoś mnie woła do jakiegoś Wf-Maga, że poszła faktura a towar dalej wisi na stanie. Wydaje mi się, że triggery w tym momencie dużo pomagają i jeszcze więcej (a w zasadzie całkowicie) zabezpieczają bazę. Zważ na to, że systemy CDN-u (łącznie z FPP) są poniekąd "otwarte", można coś "wtykać" choćby przez API. Nie wyobrażam sobie tworzenia własnych, nawet najprostszych formatek czy funkcji dodatkowych bez triggerów. > Poza tym ten cały trigger, jest wzorcowym przykładem jak nie należy tego > robić i dlaczego nie należy tak tego robić. > Po prostu utrzymanie takiego systemu to istny horror-szoł... Nie mam innych doświadczeń, brak podstaw abym się wypowiadał. >>>> Przykład z życia: pad prądu w środku wpisywania dokumentu. W różnych >>>> systemach następuje rozjazd pomiędzy stanami handlowymi a stanami >>>> magazynowymi, natomiast w Optimie/XL/Enovie praktycznie nigdy. Znam >>>> tylko kilka zgłoszonych przypadków przez blisko 20 lat. >>> Zatem mylisz transakcję bazodanową (która została wycofana, po padł >>> prąd), ze spójnością danych logicznych zapewnioną przez triggery, po >>> stronie bazy danych. >>> I tak przez blisko 20 lat :P >>> >> >> Być może mylę - nie przeczę. >> Bazodanowa - to jak coś w rodzaju TTS w Novellu? > Bazodanowa to bazodanowa, zgodna z ACID. > W porównaniu do ACID, TTS w Novell to bieda wersja, ale głównie dlatego > że operuje na plikach (czy na blokach pliku? Ja jestem noga od Novella i > wiem tyle ile wyczytam) i z tego co wiem, wymaga interakcji z Novell TTS. Novella zaprzestałem serwisować już gdzieś na v.5.x - więc dość dawno temu. Aczkolwiek jeszcze kilka lat temu coś naprawiałem w bazach KH w jakiejś Spółdzielni Mieszkaniowej - jakoś mnie przez kogoś znaleźli. Mieli CDN Klasykę na Novellu, a sieć na RG58. > W bazie danych nie posługujesz się pojęciem pliku i nic Cię on nie > obchodzi, a sama transakcja dotyczy wszystkich (zazwyczaj chodzi o > polecania DML, ale bywa różnie w różnych bazach danych) poleceń SQL, > które są nią objęte. > >> Ale to chyba na innym poziomie, niż logiczna spójność. Muszę doczytać. >> Jakiś link? > ACID > https://pl.wikipedia.org/wiki/ACID > https://msdn.microsoft.com/en-us/library/aa480356.aspx?f=255&MSPPError=-2147217396 Dzięki, w wolnej chwili poczytam. -- Pozdrawiam. Adam
Technical Details
Message-ID:
<ok0qa3$sjr$1@usenet.news.interia.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.interia.pl!not-for-mailReferences:
<59400f55$0$663$65785112@news.neostrada.pl> <ohq7ub$s7h$1@gioia.aioe.org> <ohr1t9$h91$1@usenet.news.interia.pl> <59411fb2$0$15209$65785112@news.neostrada.pl> <ohrmer$rgq$1@usenet.news.interia.pl> <5b0cb897-0678-4a43-8e26-375b40c8f6ae@googlegroups.com> <oi8crp$kr8$1@usenet.news.interia.pl> <oi8p3q$dd2$1@usenet.news.interia.pl> <oi9365$1kh$1@usenet.news.interia.pl> <5948b198$0$5146$65785112@news.neostrada.pl> <oib7fa$b50$1@usenet.news.interia.pl> <595ccdc0$0$15205$65785112@news.neostrada.pl> <ojip52$9jn$1@usenet.news.interia.pl> <5963bdc4$0$653$65785112@news.neostrada.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.interia.pl!not-for-mail From: Adam <a.g@poczta.onet.pl> Newsgroups: pl.comp.bazy-danych Subject: Re: [OT] Re: Baza ok 2500 tabel. Date: Mon, 10 Jul 2017 23:07:14 +0200 Organization: INTERIA.PL S.A. Lines: 156 Message-ID: <ok0qa3$sjr$1@usenet.news.interia.pl> References: <59400f55$0$663$65785112@news.neostrada.pl> <ohq7ub$s7h$1@gioia.aioe.org> <ohr1t9$h91$1@usenet.news.interia.pl> <59411fb2$0$15209$65785112@news.neostrada.pl> <ohrmer$rgq$1@usenet.news.interia.pl> <5b0cb897-0678-4a43-8e26-375b40c8f6ae@googlegroups.com> <oi8crp$kr8$1@usenet.news.interia.pl> <oi8p3q$dd2$1@usenet.news.interia.pl> <oi9365$1kh$1@usenet.news.interia.pl> <5948b198$0$5146$65785112@news.neostrada.pl> <oib7fa$b50$1@usenet.news.interia.pl> <595ccdc0$0$15205$65785112@news.neostrada.pl> <ojip52$9jn$1@usenet.news.interia.pl> <5963bdc4$0$653$65785112@news.neostrada.pl> NNTP-Posting-Host: ent22.internetdsl.tpnet.pl Mime-Version: 1.0 X-Trace: usenet.news.interia.pl 1499720835 29307 83.15.205.22 (10 Jul 2017 21:07:15 GMT) X-Complaints-To: usenet@firma.interia.pl NNTP-Posting-Date: Mon, 10 Jul 2017 21:07:15 +0000 (UTC) User-Agent: Mozilla/5.0 (Windows NT 5.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 In-Reply-To: <5963bdc4$0$653$65785112@news.neostrada.pl> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit