Database 如何在数据库中构造多个标识数据

Database 如何在数据库中构造多个标识数据,database,schema,Database,Schema,我正在为信贷局设计一个数据库,并寻求一些指导 他们从银行、货币金融机构、Saccos、公用事业公司等处收到的数据带有各种类型的ID。使用国民身份证和护照开立银行账户是完全合法的。让我头疼的情景之一是,客户1将使用护照在银行1获得信贷(现在称之为贷款),然后前往银行2,使用其国有化获得另一笔贷款,并使用其军事ID在银行3获得另一笔贷款。最终,当这些数据从银行传到统计局时,它将被视为3个不同的人,而我们知道它实际上是一个人。在这一点上,作为一个局,我们无能为力 然而,一个解决办法(目前)是使用政府登

我正在为信贷局设计一个数据库,并寻求一些指导

他们从银行、货币金融机构、Saccos、公用事业公司等处收到的数据带有各种类型的ID。使用国民身份证和护照开立银行账户是完全合法的。让我头疼的情景之一是,客户1将使用护照在银行1获得信贷(现在称之为贷款),然后前往银行2,使用其国有化获得另一笔贷款,并使用其军事ID在银行3获得另一笔贷款。最终,当这些数据从银行传到统计局时,它将被视为3个不同的人,而我们知道它实际上是一个人。在这一点上,作为一个局,我们无能为力

然而,一个解决办法(目前)是使用政府登记处,该登记处提供了一个存放护照和身份证的存储库。因此,一旦我们查询这些信息并得到回复,我如何在数据库中显示Passport_X与Nationalized_uy和MilitaryNumber_Z相关

同样,一个人的名字可以在不同的州被记录下来。Bank1可以执行FName、LName、OnName,而Bank3只能执行LName、FName。如何存储这些名称

即使是针对一种ID类型,例如NationalID,您也会经常发现拼写错误的名称或缺少的名称。因此,在我们的数据库中,一个被国有化的人最终可能会有6个不同的名字,因为他交易的各个银行记录的名字不同

这只是冰山一角。我们在地址、电话号码等方面有问题

您能否了解我将如何构建我的数据库,以确保我们捕获所有银行的所有数据,并提供有关个人的最准确信息?更好的是,你有这种设置的经验吗

谢谢

我如何在DB中显示Passport_X与国有和军事编号有关

琐碎的

您有一个标识表,如果标识链接到另一个标识,则该标识表有一个AlternateId字段。使用您创建的第一个主标识。任何备选方案都会有AlternateId指向它

您需要将标识从其中的数据中分离出来,这样您就可以拥有它的其他版本,可能带有origin和timestamp。您需要oto完全支持版本控制,并将不同的标识相互绑定,作为替代方案,包括可能通过使用数据的“官方”版本(即合并)的算法生成“主标识”

细节是复杂的-大多数情况下你必须在不影响性能的情况下做出很多妥协,所以最后请一位专家。有一个原因是,有些人是sensior数据库设计师或架构师,他们在寻找最佳解决方案方面有20多年的经验,而这些解决方案可能是您甚至不知道的(应用程序方面)

更好的是,你有这种设置的经验吗

对。试试财务信息。库存符号/提要/定义不一定要兼容,并且根据用户的不同而有所不同。任何非平凡的设置都有不同的数据源,这些数据源可能会显示同一项略有不同,有时会出错。不同的名称,有时不同的价格(例如:ES,CME group,每点50美元,但在TT Fix上它是5-为了弥补,价格乘以10,所以instad为1000.25,则得到10002.5)。这是同一条整合路线,而且很糟糕


大量的代码,大量的正确的数据库设计,要花半打时间重做才能获得正确的性能。遗憾的是,这很棘手。

谢谢你的洞察力。对了,最头痛的是在不影响性能的情况下设计DB。当我们与数据库斗争时,编码人员正在努力清理发送的数据而不拒绝太多数据。我想我们只能忍受重做半打。。。。。由于没有silver bullet.PS,感谢alternateID指针。在我的世界(金融)中,我有具有域字段的工具。域是“数据域”(银行、经纪人、任何人)。他们链接到一个MasterInstrumeent,该MasterInstrumeent必须以空值保存域-这是“条目的官方内部主记录”;)它通常是自动生成的,有时是手动生成的。我们整合了所有内部使用的信息(名称等)-您可以随时查看仪器在其他域中的外观。酷。谢谢你的建议。还有一件事涉及到数据库的速度和效率。我预计大约有6000万国民,大概有2000万护照和数百万军人身份证。我应该将它们放在一个表中并有一个ID类型列,还是将它们分别放在各自的表中?你会怎么想?真的要看情况了。标识表,类型字段就足够了-您可以按类型划分,所以查询效率很高。在一个好的服务器上,1亿是不值得注意的。