
Klient suhtleb andmebaasiga.
Veebisaidilt , kunstniku Jonathan Tiong.
Lisaks sellele, et olen programmeerija (peamiselt Delphi + erinevad andmebaasid, viimasel ajal ORACLE, + natuke PHP), on mul hobi — kinnisvara ostmine ja müümine. Ostsin korteri ehitusjärgus usaldusväärselt arendajalt tõeliselt hea hinnaga (näiteks, praegu on selline arendaja Samoljet, korterid m. Nekrasovka lähedal müügis), ootan hoone valmimist (tihti kaks aastat hiljem, odavate pakkumiste korral juhtub see) ja teen seal remonti ning müün seejärel korteri 95-100% turuhinnast.
Nii et ma (nagu kõik) silmitsi probleemiga, et Rosreestr ei paku tehingute ülesehitust.
Rosreestri tehingute ülesehituse puudumine
Programmeeringus on 'Tehing', aga kinnisvaras on see 'Alternatiivi tehing' (nagu ka selle osa, 'Panga rakenduse leping'), ja seal on kõik natuke keerulisem. Räägin sellest.
Vasja tuli vaatama korterit, mida müüb Petja. Ja Vasjale meeldis kõik väga, sealhulgas hind, aga Vasjal pole raha. Nii algabki meie lugu.
Vasjal on oma kinnisvara, millel on mõned tema jaoks mitte eriti vajalikud omadused — naabermajas elas Lomonosov, lae kõrgus on seitse ja pool meetrit, lähedal on puu- ja köögiviljade hulkjaam ning turu Sadood, jalutuskäiguga pääseb Aeroflexisse, korteri all on 1-meetrine keldri kõrgus ja korteri kohal on pööning, mis sobib astronoomiliste vaatlusteks. Vasja mõistab, et need omadused tõstavad tema korteri hinda, kuid mitte tema jaoks. Ja ta otsustab osta Petja korteri, kuid müüa oma korteri just selleks, et osta Petja korter, mitte lihtsalt sedasi. Kinnisvara maaklerite keeles nimetatakse seda — 'Alternatiiv on valitud'.
Nüüd vaatame seda olukorda Petja vaatepunktist. Asi on selles, et Petjale ei ole samuti huvitav istuda devalveeritud rahadega, ta müüb korteri selleks, et osta endale korter elfi linnas Valinor, aga millise täpselt — ei ole veel vaadanud. Kinnisvara maaklerite keeles nimetatakse seda — 'Alternatiivi tehing'.
Kaks Keskmaa haldjat, Maglor ja Maedros, omavad sobivat (Petja kriteeriumitele) kinnisvara Valinori linnas, mille nad kiirelt müüvad, kuna nad sõidavad teenima Melkori. Kinnisvara müügis kasutatakse seda terminina - "Vaba müük".
Nii et Vassja leiab kliendi Serežat. Nüüd leiab Petja kaks sobivat varianti Valinoris. Liigume lepingut vormistama. Oletame liialdavalt, et lepingus osalejatest keegi ei kasuta hüpoteeki ega ole alaealiste kaasomanik. Seega peavad nüüd toimuma järgmised toimingud:
1. Sereža annab Petjale raha.
2. Vassja annab oma korteri Serežale.
3. Petja annab oma korteri Vassjale.
4. Ükskõik kummagi, kas Maglor või Maedros, annab oma korteri Valinoris Petjale ja saab Serežalt raha.
5. Malkor ja Maedros lähevad Mordori teenima Melkori.
Ideaalne oleks edastada järgmine skript Rosreestrile:
ALUSTA TEHINGUT
Vassja korter anda Serežale.
Petja korter anda Vassjale.
begin
Malkoori korter anda Petjale.
Sereža raha anda Malkorile.
KUI_VIGA:
Maedrose korter anda Petjale.
Sereža raha anda Maedrosile.
lõpeta
KOMMIT TEHINGUT
See on lihtsustatud tehinguskript alternatiivi korral, mis eeldab, et kõikidel korteritel on üks täiskasvanu (ja teovõimeline) omanik, et nende väärtused on võrdsed ning et maaklerite tasud (kui neid on) makstakse eraldi tehingu etappidest.
Kuid Rosregister ei toeta tehingulist lähenemist. Kõik toimingud viiakse läbi järjestikku ja iseseisvalt, üks teise järel, ilma, et tehingu tühistamine toimuks, kui ükski neist ei ole täidetud. Maksimum, mida on võimalik saavutada - arvestades, et Rosregister ja MFC ei tegele rahaülekannetega - on see, et raha pannakse panga seifi, millele pääsevad ligi Vassja, Petja, Sereža (kui tehingut ei ole registreeritud) ja teised osalejad, esitades registreeritud Rosregisteri lepingud. (Ja muide, pangad ei kontrolli lepingute autentsust iseseisvalt, seega usaldavad nad tehingu osaliste dokumentide ehtsust.)
Lisaks tehingu mittetäieliku täitmise riskidele, on teine probleem see, et kui teised osalised saavad siseneda oma uutesse elukohtadesse, ootamata täielikku vormistust (tere, kommunaalmaksete alamaksmise küsimus!), siis Maglor ja Maedhros ei lähe varsti teenima Melkori, ja võib-olla ei suuda Maglor sildile hoida silmarilli, ta lihtsalt ei jõua. Kinnisvaratehingud viiakse läbi järk-järgult ning iga tehingu vormistamine kestab vähemalt 9 tööpäeva.
Lisaks sellele ei toeta Rosreestr ehitustegevuse koormamist DDU alusel, kuigi võiks, see on elementaarne toiming seoses lihtsa tulevikulepinguga.
Nüüd liigume puuduste ja minu soovide juurde andmebaasihalduse süsteemi kohta.
1) Esiteks — see on versioonikontrolli süsteemi puudumine. Kui Delphi poolt arendades teen oma muudatusi liivakastis ja need ei jõua teiste programmeerijateni enne nende commitimist, siis andmebaasihalduse süsteemi puhul ei ole see nii. Ja isegi kui mulle usaldatakse täielik (vähemalt selle ülesande täitmiseks vajalik) juurdepääs tootmisandmebaasile, mis juhtub mõnikord, ei saa ma sellel arendada. Seni, kuni ma silun, kõik laguneb. Mis see on, kiviaeg??? Looge arendajatele liivakast.
2) Teiseks — see on standardsete tabelite puudumine, mis kirjeldavad reaalset maailma. Igas firmas, kus ma olen töötanud, on oma tabeli formaat, mis kirjeldab nimede (vene ja (vähemalt) inglise keeles, vene keele erinevates käändes) kaheteistkümne kuu kohta!
3) Kolmandaks — ja siin kasutan Oracle'i terminoloogiat — puudub võimalus kutsuda lihtsat Insert või Update skripti, mis kasutab Returningut, just nagu me kutsume Selecti. Võib-olla ei ole see Oracle'i probleem, vaid Delphi + Oracle'i vahelise ühenduse probleem.
4) Neljas on vajadus määrata loodud protseduuridele ja funktsioonidele volitused seal, kus ma seda teha ei soovi. Ma ei soovi määrata ja seejärel muuta kasutajate volitusi protseduuris ja funktsioonis. Miks, kui ma ei ole selgelt määranud Grant'e, ei võiks süsteem ise vaadata kaasatud objekte ja vastavalt õigustele nende tegevustele anda või mitte anda teatud kasutajatele õigust funktsiooni kutsumiseks? Olen valmis selleks kirjutama ühe võtmesõna protseduuride ja funktsioonide kirjutamisel. Või veel parem, las kasutaja alustab täitmist, ja kui algoritmi haru viib teda päringule, milleks tal pole õiguseid, siis viskab süsteem vea.
Allikas: habr.com
