Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将名为+;姓氏+;出生日期组合是否足够独特?_Sql_Asp.net_Database_Algorithm_Database Design - Fatal编程技术网

Sql 将名为+;姓氏+;出生日期组合是否足够独特?

Sql 将名为+;姓氏+;出生日期组合是否足够独特?,sql,asp.net,database,algorithm,database-design,Sql,Asp.net,Database,Algorithm,Database Design,我需要在算法/数据库设计方面得到帮助,以便我目前从事基于web的应用程序的工作(很抱歉,我提前问了这么长的问题) 应用程序说明: 我正在建立一个客户登记站(它基本上只是一个显示网页并连接到扫描仪的显示器),在这里,进入办公室(类似于图书馆)的客户可以扫描他们的办公室ID卡(上面有唯一的条形码)以登记入住、客户信息(名字、姓氏、出生日期、登记时间……)将被发送/保存到服务器上,办公室管理员将能够看到谁现在在办公室并执行任务……) 为新客户创建身份证时,所需的唯一信息是:名字、姓氏和出生日期(客户可

我需要在算法/数据库设计方面得到帮助,以便我目前从事基于web的应用程序的工作(很抱歉,我提前问了这么长的问题)

应用程序说明:

我正在建立一个客户登记站(它基本上只是一个显示网页并连接到扫描仪的显示器),在这里,进入办公室(类似于图书馆)的客户可以扫描他们的办公室ID卡(上面有唯一的条形码)以登记入住、客户信息(名字、姓氏、出生日期、登记时间……)将被发送/保存到服务器上,办公室管理员将能够看到谁现在在办公室并执行任务……)

为新客户创建身份证时,所需的唯一信息是:名字、姓氏和出生日期(客户可以是从小孩到老人的任何年龄)=>系统将生成唯一的条形码(16位)并打印出新的身份证(仅带条形码)

问题

如果客户忘记/丢失了身份证,或者有时身份证太旧,无法扫描条形码,则客户可以在值机柜台中键入他们的名字+姓氏和出生日期,然后系统将搜索(名字+姓氏+出生日期),并确定该客户是否存在并将其登记。但有可能不止一个人的名字和生日相同: -然后,系统可以将所有匹配的人显示在屏幕上,但客户如何知道他们自己是谁? -或者,如果系统不允许将具有相同姓名和dob的客户首先保存到数据库中,则可以避免这种情况。但是,“第二名”的客户会因为没有卡而感到非常不安:)

编辑:

我如何处理这个问题,我的意思是这只是一个办公室,所以我们不能要求SSN或驾驶执照。。。办理入住手续必须简单快捷,其中一些人可能是没有身份证或电话的孩子(他们将与父母/监护人一起前往),而他们中的许多人都是老年人(70岁以上,甚至80岁以上),他们甚至不能打字,这就是为什么“身份证扫描”的想法可以帮助他们——他们所需要做的就是扫描他们的身份证。。。(我认为他们永远都记不住“安全问题”),短信验证将不起作用(电话号码可能会更改,并非所有客户都有电话,运营商将参与其中(覆盖范围、费率等),我不想要这些)

在阅读了你的所有建议之后:

我考虑的是一个4位密码(如信用卡背面的3位安全码)-它将打印在身份证上,并附有说明和所有内容,这将不同于唯一的客户号码(用于扫描),其工作原理如下: -当创建一张新的客户身份证时,系统将要求额外的4位密码,并将其打印到卡上,还将在卡上放置一个算法,以确保具有相同姓名+dob的客户不能具有相同的密码

如果客户无法使用/丢失该卡,在他们输入姓名+dob办理入住手续后,如果有超过1名匹配人员,系统仅询问该4位密码,否则如果只有1名匹配人员,系统将立即为他们办理入住手续

如果他们忘记了这个密码,我的意思是他们自己也无能为力,接待员将不得不设法帮助他们,你们怎么看,我仍然愿意接受建议

我的最终解决方案:

因为卡片上除了条形码(客户编号)之外没有其他(客户信息),所以最好的方法是预印(预制)它们,将它们放在桌子上准备好给新客户或用于更换卡片

  • 创建新客户时,接待员将手动输入名字+姓氏+dob+电话号码(可选)+电子邮件(可选)+家庭地址+客户号码(与他们将要给客户的卡中相同)+.提交,系统将检查所有情况,如果一切正常,接待员将给客户一张新卡=>客户返回登记站并登记入住

  • 当客户忘记卡=>他们将需要查看接待员=>执行验证流程=>接待员将手动为他们办理入住手续

  • 当客户丢失卡或卡损坏=>他们需要见接待员=>执行验证流程=>接待员,然后给客户更换卡=>客户回到值机柜台办理登机手续


让每位客户告诉您两个“安全问题”类型的数据:出生地点、最喜欢的菜肴……这些数据可以作为唯一的答案


然后,您可以防止输入重复项,因为如果注册发生冲突,客户必须选择一个不同的问题。

在当前项目中,我遇到了寻找客户的相同方法。该项目是关于电视内容的,所以第二级“筛选”是地址。我认为您需要扩展客户信息提示:用户名、电子邮件、头像或易于记忆的东西(或发送带有代码的短信)。此外,您还可以添加用户友好行为:如果客户无法决定有关他/她的哪些记录,则客户应通过向导添加所需信息。是的,很难找到所有客户的通用证据,但您可以支持几种额外信息。
换句话说:名字、姓氏和出生日期都不足以明确地找到一个人。

一些漫无边际的想法:

你可以给用户分配一个PIN码,并使用它使帐户唯一。大概为了确保它唯一,你必须分配它,你不能让他们发明一个PIN码。(你可以让他们发明一个PIN码,然后