Hasrat saya untuk DBMS masa depan, dan juga untuk Rosreestr dari segi transaksi

Hasrat saya untuk DBMS masa depan, dan juga untuk Rosreestr dari segi transaksi
Pelanggan berinteraksi dengan pangkalan data.
Dari laman web http://corchaosis.ru, oleh Jonathan Tiong.

Sebagai tambahan kepada fakta bahawa saya seorang pengaturcara (terutamanya Delphi + semua jenis DBMS yang berbeza, baru-baru ini ORACLE, + sedikit PHP), saya mempunyai hobi - membeli dan menjual pangsapuri. Saya membeli sebuah apartmen semasa peringkat pembinaan daripada pemaju yang lebih dipercayai pada harga yang baik (contohnya, sekarang Samolet adalah pemaju seperti itu, pangsapuri berhampiran stesen metro Nekrasovka dijual), tunggu rumah itu dihantar (selalunya dua tahun kemudian, ini berlaku dengan tawaran yang murah), saya mengubahsuainya dan kemudian menjualnya untuk 95-100% daripada harga pasarannya.

Jadi, saya (seperti orang lain) berhadapan dengan masalah kekurangan transaksi RosReestr.

Masalah kekurangan transaksi transaksi Rosreestr

Dalam pengaturcaraan ia adalah "Transaksi", dan dalam hartanah ia adalah "Transaksi dengan Alternatif" (dan juga, sebagai sebahagian daripadanya, "Perjanjian Peti Deposit Selamat"), dan ia sedikit lebih rumit. Saya beritahu awak.

Vasya datang untuk melihat apartmen yang dijual oleh Petya. Dan Vasya sangat menyukai segala-galanya, termasuk harga, tetapi Vasya tidak mempunyai wang. Beginilah kisah kami bermula.

Vasya mempunyai hartanya sendiri, yang mempunyai beberapa nilai yang tidak diperlukan untuknya - Lomonosov tinggal di rumah jiran, ketinggian siling tujuh setengah meter, terdapat pangkalan buah-buahan dan sayur-sayuran dan pasar Sadovod berdekatan, anda boleh berjalan di atas Aeroexpress, di bawah apartmen terdapat ruang bawah tanah dengan ketinggian 1 meter, terdapat loteng di atas apartmen yang sesuai untuk pemerhatian astronomi. Vasya memahami bahawa ciri-ciri ini meningkatkan harga apartmennya, tetapi bukan untuk dirinya sendiri. Dan dia memutuskan untuk membeli apartmen Petya dan menjual apartmennya sendiri. Tetapi menjual dengan tepat untuk membeli apartmen Petya, dan bukan hanya. Dalam bahasa broker barang, ini dipanggil "Alternatif telah dipilih."

Sekarang mari kita lihat situasi ini dari sisi Petya. Hakikatnya ialah Petya juga tidak berminat untuk duduk dengan susut nilai, dia menjual apartmen itu untuk membeli apartmen di bandar elf Valinor, tetapi dia belum melihat yang mana. Dalam bahasa broker barang, ini dipanggil "Berurusan dengan alternatif."

Dua elf Middle-earth, Maglor dan Maedhros, mempunyai hartanah yang sesuai (mengikut kriteria Petya) di bandar Valinor, yang dijual segera, kerana mereka akan berkhidmat kepada Melkor. Dalam bahasa broker barang ini dipanggil "Jualan Percuma".

Jadi, Vasya mencari pelanggan, Seryozha. Kini, Petya menemui dua pilihan yang sesuai untuknya di bandar Valinor. Kami akan memuktamadkan perjanjian itu. Mari kita anggap untuk kesederhanaan bahawa tidak ada pihak dalam transaksi menggunakan gadai janji dan tidak mempunyai anak bawah umur sebagai pemilik saham. Oleh itu, tindakan berikut mesti dilakukan sekarang:
1. Seryozha memberi wang kepada Petya.
2. Vasya memberikan apartmennya kepada Seryozha.
3. Petya memberikan apartmennya kepada Vasya.
4. Sama ada Maglor atau Maedhros memindahkan apartmen mereka di Valinor ke Peta dan menerima wang Seryozha.
5. Malkor dan Maedhros pergi ke Mordor untuk melayan Melkor.

Adalah sesuai untuk menyerahkan skrip berikut kepada Rosreestr untuk dilaksanakan:

MULAKAN TRANSAKSI
Berikan apartmen Vasya kepada Seryozha.
Berikan apartmen Petya kepada Vasya.
memulakan
Berikan apartmen Malkor kepada Petya
Berikan wang Seryozha kepada Malkor
IF_ERROR:
Berikan apartmen Maedhros kepada Petya
Berikan wang Seryozha kepada Maedhros
akhir
TRANSAKSI KOMIT

Ini adalah skrip transaksi yang dipermudahkan dengan alternatif, yang mengandaikan bahawa semua pangsapuri mempunyai seorang pemilik dewasa (dan berkemampuan), bahawa nilai mereka adalah sama, dan broker barang (jika ada) dibayar tanpa mengira peringkat transaksi.

Walau bagaimanapun, Rosreestr tidak menyokong transaksi. Semua tindakan akan dilakukan secara berurutan dan bebas, satu demi satu, tanpa mengembalikan urus niaga secara keseluruhan jika salah satu daripadanya gagal. Maksimum yang boleh dicapai - memandangkan Rosreestr dan MFC tidak berfungsi dengan pemindahan wang tunai - adalah untuk mendepositkan wang dalam peti deposit selamat, dengan syarat untuk mengaksesnya oleh Vasya, Petya, Seryozha (jika tiada transaksi didaftarkan sama sekali), dan pelakon lain, selepas pembentangan kontrak yang didaftarkan oleh Rosreestr. (Dan dengan cara ini, bank tidak secara bebas mengesahkan kesahihan kontrak, iaitu, mereka mempercayai kesahihan kertas pihak-pihak yang terlibat dalam transaksi).

Selain risiko penyelesaian transaksi yang tidak lengkap, masalah lain ialah jika peserta lain boleh berpindah ke rumah baharu mereka tanpa menunggu pendaftaran penuh (hello, isu terkurang bayar bil utiliti!), maka Maglor dan Maedhros tidak akan segera pergi ke melayani Melkor, dan mungkin Maglor tidak akan dapat dia hanya tidak akan mempunyai masa untuk memegang Silmarils di tangannya. Urus niaga hartanah dijalankan secara berurutan, dan pelaksanaan setiap transaksi akan mengambil masa sekurang-kurangnya 9 hari perniagaan.

Di samping itu, Rosreestr tidak menyokong bebanan perumahan yang dibina di bawah DDU, tetapi boleh jadi, ini adalah tindakan asas berhubung dengan niaga hadapan yang mudah.

Sekarang mari kita beralih kepada kekurangan dan keinginan saya tentang DBMS

1) Yang pertama ialah kekurangan sistem kawalan versi. Jika di sebelah Delphi saya membangunkan dalam kotak pasir saya sendiri, dan perubahan yang saya buat tidak akan kelihatan kepada pengaturcara lain sehingga ia komited, maka ini tidak berlaku dengan DBMS. Dan walaupun saya dipercayai dengan penuh (sekurang-kurangnya dalam skop apa yang diperlukan untuk tugas yang diberikan kepada saya) akses kepada pangkalan data pertempuran, dan ini berlaku, saya tidak boleh membangunkannya. Semasa saya menyahpepijat, semuanya akan runtuh. Zaman Batu apakah ini??? Buat kotak pasir untuk pembangun.

2) Yang kedua ialah kekurangan jadual piawai yang telah ditetapkan yang menerangkan dunia sebenar. Setiap syarikat tempat saya bekerja mempunyai format jadual sendiri yang menerangkan nama (dalam bahasa Rusia dan (sekurang-kurangnya) Inggeris, dalam kes bahasa Rusia yang berbeza) selama dua belas bulan!

3) Ketiga - dan di sini saya akan menggunakan terminologi Oracle - tidak ada cara untuk memanggil skrip Sisip atau Kemas kini mudah yang menggunakan Returning, dengan cara yang sama kita memanggil Select. Mungkin ini bukan masalah Oracle, tetapi masalah pada antara muka Delphi + Oracle.

4) Keempat - keperluan untuk memberikan kuasa kepada prosedur dan fungsi yang saya buat di mana saya tidak mahu melakukan ini. Saya tidak mahu menetapkan dan kemudian menukar kebenaran pengguna untuk prosedur dan fungsi. Mengapa, jika saya tidak menulis Geran secara eksplisit, tidakkah sistem itu sendiri boleh melihat objek yang terlibat, dan, menurut hak untuk bertindak dengan mereka, memberikan atau tidak pengguna tertentu hak untuk memanggil fungsi? Saya bersedia untuk menulis satu kata kunci untuk ini semasa menulis fungsi dan prosedur. Atau, lebih baik lagi, biarkan pengguna memulakan pelaksanaan, dan jika cabang algoritma membawanya kepada permintaan yang pengguna tidak mempunyai hak, dia akan membuangnya dengan ralat.

Sumber: www.habr.com

Tambah komen