
Klienti ndërvepron me bazën e të dhënave.
Nga faqja , autor i pikturës Jonathan Tiong.
Përveç se jam programues (kryesisht, kjo është Delphi + disa DBMS të ndryshme, kohët e fundit ORACLE, + pak PHP), kam një hobi - blerjen dhe shitjen e apartamenteve. Blej një apartament në fazën e ndërtimit nga një ndërtues më ose më pak të besueshëm me një çmim tërheqës (për shembull, tani ndërtuesi i tillë është Samolyot, apartamentet afër stacionit të metrosë Nekrasovka po shiten), pres dorëzimin e shtëpisë (shpesh dy vjet më vonë, me oferta të lira ndodhin këto) , bëj rinovimin dhe pastaj e shes për 95-100% të çmimit të tregut.
Pra, unë (si të gjithë) përballëm me problemin e mungesës së transaksionalitetit nga Rosreestr.
Problemi i mungesës së transaksionalitetit të transaksioneve nga Rosreestr
Në programim, "Transaksioni", dhe në pasuri të paluajtshme, është "Transaksioni me alternativë" (dhe gjithashtu, si pjesë, "Marrëveshja për cakun bankar"), dhe atje është një farë më e ndërlikuar. Po tregoj.
Vasia erdhi për të parë apartamentin që shiti Petja. Dhe Vasia pëlqeu shumë, përfshirë çmimin, por Vasia nuk ka para. Kështu fillon historia jonë.
Vasia ka pasurinë e tij, e cila ka disa vlera që nuk janë shumë të nevojshme për të - në shtëpinë përballë ka jetuar Lomonosov, lartësia e tavanit është shtatë e gjysmë metra, afër ndodhet baza e frutave dhe tregu Sadu, mund të shkosh me këmbë në Aeroekspres, nën apartament ka një bodrum me lartësi 1 metër, mbi apartament ka një ryfylë të përshtatshëm për vëzhgime astronomike. Vasia kupton se këto karakteristika rrisin çmimin e apartamentit të tij, por jo për veten e tij. Dhe ai vendos të blejë apartamentin e Petës dhe të shesë apartamentin e tij. Por ta shesë pikërisht për të blerë apartamentin e Petës, e jo thjesht. Në gjuhën e agjentëve të pasurive të paluajtshme, kjo quhet - "Alternativa e caktuar".
Tani le të shikojmë këtë situatë nga këndvështrimi i Petës. Problemi është se Petja gjithashtu nuk është i interesuar të qëndrojë me para që po humbasin vlerën, ai e shet apartamentin për të blerë një apartament për veten në qytetin elvish Valinor, por cila saktësisht - nuk ka shikuar ende. Në gjuhën e agjentëve të pasurive të paluajtshme, kjo quhet - "Transaksion me alternativë".
Dy elfë të Tokës së Mesme, Maglor dhe Maedros, kanë një pronë të përshtatshme (sipër kriteret e Petës) në qytetin Valinor, të cilën e shesin me ngut, pasi po shkojnë të shërbejnë Melkorit. Në gjuhën e agjentëve të patundshmërive, kjo quhet - "Shitje e Lirë".
Pra, Vasia gjen klientin Serjozha. Tani, Peta gjen dy mundësi të përshtatshme për të në qytetin Valinor. Të kalojmë në përgatitjen e marrëveshjes. Le të supozojmë për thjeshtësi se asnjë nga pjesëmarrësit në marrëveshje nuk përdor hipotekë dhe nuk ka bashkëpronësi me të mitur. Kështu, tani duhet të kryhen veprimet e mëposhtme:
1. Serjozha i jep paratë Petës.
2. Vasia i jep apartamentin e tij Serjozhës.
3. Peta i jep apartamentin e tij Vasias.
4. Ose Maglor, ose Maedros, i japin apartamentin e tyre në Valinor Petës dhe marrin paratë e Serjozhës.
5. Malkor dhe Maedros shkojnë në Mordor për t'u shërbyer Melkorit.
Ideale do të ishte që të kalojnë në Rosreestër për të realizuar skenarin e mëposhtëm:
START TRANSACTION
Apartamenti i Vasias t'i jepet Serjozhës.
Apartamenti i Petës t'i jepet Vasias.
fillo
Apartamenti i Malkorit t'i jepet Petës
Paratë e Serjozhës t'i jepen Malkorit
NSE_PATJES:
Apartamenti i Maedros t'i jepet Petës
Paratë e Serjozhës t'i jepen Maedrosit
end
COMMIT TRANSACTION
Ky është një skenar i thjeshtuar i marrëveshjes me alternativë, duke supozuar se të gjithë apartamentet kanë një pronar të rritur (dhe të aftë) e që çmimet e tyre janë të barabarta, dhe se pagesa e agjentëve të patundshmërive (nëse ka) paguhet jashtë lidhjes me fazat e marrëveshjes.
Megjithatë, Rosreestri nuk mbështet transaksionalitetin. Të gjitha veprimet do të kryhen njëra pas tjetrës dhe në mënyrë të pavarur, pa kthim të transaksionit tërësor nëse njërën prej tyre nuk e ka realizuar. Maksimumi që mund të arrihet - duke marrë parasysh se Rosreestri dhe MFC nuk punojnë me transfertat e parave cash - është të vendosen paratë në një kuti bankare, me kushte për qasje në to nga Vasia, Peta, Serjozha (nëse nuk është regjistruar asnjë marrëveshje), dhe të tjerët që kanë qëllim në faktin e paraqitjes së kontratave të regjistruara nga Rosreestri. (Dhe, për t'u thënë, bankat nuk e kryejnë kontrollin e autenticitetit të kontratave, pra i besojnë autenticitetit të dokumenteve të pjesëmarrësve në marrëveshje).
Përveç rreziqeve të përfundimit të pjesshëm të transaksionit, një problem tjetër është se nëse pjesëmarrësit e tjerë mund të hyjnë në shtëpitë e tyre të reja pa pritur përfundimin e plotë (përshëndetje, çështja e pagesave të pa paguara të shërbimeve!), atëherë Maglor dhe Maedhros nuk do të shkojnë së shpejti të shërbejnë Melkorit, dhe ndoshta Maglor nuk do të mund të mbajë në duar silmarillat, ai thjesht nuk do të ketë kohë. Transaksionet për pasuri të paluajtshme kryhen në mënyrë të kutshtë, dhe përfundimi i çdo transaksioni do të zgjasë të paktën 9 ditë pune.
Përveç kësaj, Rosreestr nuk mbështet ngarkesat e pasurive të ndërtuara sipas DDU, ndërsa mund të bënte këtë, është një veprim elementar në lidhje me një futures të thjeshtë.
Tani le të kalojmë te disavantazhet dhe dëshirat e mia në lidhje me DBMS
1) E para â Ă«shtĂ« mungesa e sistemit tĂ« kontrollit tĂ« versioneve. NĂ«se nga ana e Delphi unĂ« po zhvilloj nĂ« rĂ«ra-ndĂ«rtuese, dhe ndryshimet qĂ« kam bĂ«rĂ« nuk do tĂ« shfaqen te programuesit e tjerĂ« deri nĂ« momentin e komitimit, me DBMS nuk Ă«shtĂ« kĂ«shtu. Edhe nĂ«se mĂ« besojnĂ« njĂ« akses tĂ« plotĂ« (tĂ« paktĂ«n, brenda kornizave tĂ« nevojshme pĂ«r qĂ«llimin e caktuar pĂ«rpara meje) nĂ« DB-nĂ« e prodhimit, dhe kjo ndodh, nuk mund tĂ« zhvilloj nĂ« tĂ«. NdĂ«rsa po e debatoj, everything will collapse. ĂfarĂ« Ă«shtĂ« ky shekull i gurit??? BĂ«ni njĂ« rĂ«rĂ« pĂ«r zhvilluesit.
2) E dyta â Ă«shtĂ« mungesa e tabelave tĂ« standardizuara tĂ« paracaktuara, qĂ« pĂ«rshkruajnĂ« botĂ«n reale. NĂ« çdo kompani ku kam punuar, ka njĂ« format tĂ« vetin tĂ« tabelĂ«s, qĂ« pĂ«rshkruan emra (nĂ« gjuhĂ«n ruse dhe (tĂ« paktĂ«n) nĂ« anglisht, nĂ« raste tĂ« ndryshme tĂ« gjuhĂ«s ruse) tĂ« dymbĂ«dhjetĂ« muajve!
3) E treta â dhe kĂ«tu do tĂ« pĂ«rdor terminologjinĂ« e Oracle â mungon mundĂ«sia pĂ«r tĂ« thirrur njĂ« skenar tĂ« thjeshtĂ« Insert ose Update, qĂ« pĂ«rdor Returning, ashtu siç e thĂ«rrasim Select. Ndoshta nuk Ă«shtĂ« problem i Oracle, por njĂ« problem i lidhjes Delphi + Oracle.
4) E katĂ«rta â nevoja pĂ«r caktimin e autorizimeve pĂ«r procedurat dhe funksionet qĂ« krijoj kur nuk dĂ«shiroj ta bĂ«j kĂ«tĂ«. Nuk dua tĂ« caktoj dhe pastaj tĂ« ndryshoj autorizimet e pĂ«rdoruesve pĂ«r procedurat dhe funksionet. Pse, nĂ«se nuk kam shkruar qartĂ« Grant-at, sistemi nuk mund tĂ« shikonte vetĂ« nĂ« objektet e angazhuara dhe, nĂ« pĂ«rputhje me tĂ« drejtat pĂ«r veprime ndaj tyre, tĂ« ndante ose jo pĂ«rdoruesit e caktuar me tĂ« drejtĂ«n pĂ«r tĂ« thirrur funksionin? Jam i gatshĂ«m tĂ« shkruaj njĂ« fjalĂ« kyçe pĂ«r kĂ«tĂ« kur shkruaj funksionet dhe procedurat. Ose, edhe mĂ« mirĂ«, le tĂ« fillojĂ« pĂ«rdoruesi ekzekutimin, dhe nĂ«se dega e algoritmit e çon atĂ« nĂ« njĂ« kĂ«rkesĂ« pĂ«r tĂ« cilĂ«n pĂ«rdoruesi s'ka tĂ« drejta, atĂ«herĂ« tĂ« hedhet njĂ« gabim.
Burimi: habr.com
