我对未来的DBMS以及Rosreestr在事务性方面的希望



客户端与数据库进行交互。

从网站http://corchaosis.ru,图片Jonathan Tiong的作者。



除了是一名程序员(主要是Delphi +各种不同的DBMS,最近是ORAKL,还有一些PHP),我还有一个爱好-买卖公寓。我在建设阶段从一个或多或少可靠的开发商那里以可口的价格购买了一个公寓(例如,现在这样的开发商是飞机,正在出售Nekrasovka地铁附近的公寓),我等待房屋交付(通常是两年后,这种情况发生时价格便宜),我这样做翻新后以其市场价格的95-100%出售。



因此,我(和其他所有人一样)面临RosReestr缺乏交易性的问题。



Rosreestr缺乏交易性交易的问题



在“交易”程序和房地产编程中,这是“交易的替代方案”(也是其中的一部分,“关于保管箱的协议”),那里的一切都有些复杂。我告诉你。



瓦西亚(Vasya)来看看佩蒂亚(Petya)正在出售的公寓。 Vasya非常喜欢一切,包括价格,但是Vasya没有钱。这就是我们故事的开始。



瓦西亚拥有自己的财产,对他来说并没有特别必要的一些价值-罗蒙诺索夫住在隔壁的房子里,天花板高度为七米半,附近有一个水果种植基地,附近有园丁市场,您可以步行到Aeroexpress,地下室的高度为1米,在公寓上方有一个阁楼,方便天文观测。 Vasya知道这些功能会增加他的公寓的价格,但对他自己而言不是。他决定购买Petya的公寓并出售他的公寓。但是卖掉它是为了购买佩蒂特的公寓,而不仅仅是。在房地产经纪人的语言中,这称为“选择替代方案”。



现在让我们从Petya的角度来看这种情况。事实是,佩蒂娅对坐在贬值货币上也不感兴趣,他卖掉了一套公寓,以便自己在精灵城市瓦利诺里买了一套公寓,但他还没有看哪一套。用房地产经纪人的语言,这被称为“替代交易”。



中产阶级的两个精灵Maglor和Maedhros在瓦里纳尔市拥有合适的房地产(根据Petit的标准),该市已被迫出售,因为他们被派往梅尔科尔。用房地产经纪人的语言,这称为“免费销售”。



因此,Vasya找到了客户Seryozha。现在,佩蒂娅在瓦利诺市找到了两个适合他的选择。我们去进行交易登记。为了简单起见,假设交易的任何一方都不使用抵押贷款,也没有少数股东。因此,现在必须采取以下行动:

1. Seryozha将钱捐给Petya。

2. Vasya将他的公寓移交给Seryozha。

3. Petya将他的公寓移交给Vasya。

4. Maglor或Maedhros将他们在Valinor的公寓移交给Pete,并获得Seryozha的钱。

5. Malkor和Maedhros前往Mordor服务Melkor。



最好将以下脚本发送给Rosreestr以执行:

开始交易将

Vasya的公寓交给Seryozha。

将佩蒂亚的公寓交给瓦西亚。

开始将

Malkor的公寓交给Petya将

Seryozha的钱交给Malkor IF_

错误:将

Maedhros的公寓给Petya将

Seryozha的钱交给Maedhros

结束

提交交易



这是一种简化的交易脚本,其中假设所有公寓都只有一位成年(和有能力)的所有者,且价格均等,并且在交易阶段以外支付了房地产经纪人的费用(如果有)。



但是,Rosreestr不支持事务性。如果所有动作之一尚未完成,则将依次且独立地依次执行所有动作,而不会将整个事务回滚。鉴于Rosreestr和MFC不能进行现金转移,可以实现的最大目的是将钱放在一个保险箱中,并有Vasya,Petit,Seryozha(如果根本没有登记交易)和其他参与者可以使用该钱的条件,在由他们介绍Rosreestr注册的合同后。 (顺便说一句,银行不会独立验证合同的真实性,也就是说,它们信任交易参与者的证券的真实性)。



除了交易无法完全执行的风险外,另一个问题是,如果其他参与者可以在不等待完整注册的情况下搬入新住房(您好,水电费的欠缴问题!),那么Maglor和Maedhros将不会很快为Melkor服务,也许Maglor将无法提供服务。握住西玛尔斯手中的东西,他根本就没有时间。房地产交易是按顺序进行的,每笔交易至少需要9个工作日才能完成。



此外,Rosreestr不支持DDU下在建房屋的抵押,但有可能这是与简单期货有关的基本行动。



现在,让我们继续了解DBMS的缺点和我的愿望



1)第一个是缺少版本控制系统。如果从Delphi的角度来看,我是在沙箱中进行开发的,而所做的更改直到他们提交时才出现在其他程序员中,那么DBMS则不是这种情况。即使他们信任我(至少在分配给我的任务所必需的框架内)对战斗数据库的完全访问权限,并且这种情况发生了,我也无法在此基础上继续发展。在调试时,所有内容都会崩溃。什么是石器时代???沙盒开发人员。



2)第二是缺少描述现实世界的预定义标准化表。我工作的每家公司都有自己的表格格式,其中描述了名称(用俄语和(至少)英语,在不同的俄语情况下为英文)十二个月!



3)第三,在这里我将使用Orakl的术语,因为我们称为Select,因此无法使用Returning调用简单的Insert或Update脚本。也许这些不是Orakl的问题,而是Delphi + Oracle的连接问题。



4)第四点-需要为我不想这样做的地方创建的过程和功能分配权限。我不想设置然后更改过程和功能的用户权限。为什么,如果我没有明确编写Grants,那么系统本身就无法查看所涉及的对象,并且根据与之交互的权利来授予或不授予某些用户调用该函数的权利?在编写函数和过程时,我准备为此编写一个关键字。或者,甚至更好的方法是让用户开始执行,如果算法的分支将他引向用户没有权限的请求,它将被抛出错误。



All Articles