我需要有关当前基于网络的应用程序的算法/数据库设计方面的帮助(我提前为长期问题道歉)
申请说明:
我正在建立一个客户登记站(它基本上只是一个显示网页并连接到扫描仪的监视器),进入办公室的客户(类似于图书馆)可以扫描他们的办公室身份证(它有一个独特的条形码)登记,客户信息(名字,姓氏,出生日期,登记入住时间......)将被发送/保存到服务器上,办公室管理员将能够看到谁现在在办公室并做事......)
为新客户创建身份证时,所需的唯一信息是:姓名,姓氏和出生日期(客户可以是从孩子到老年人的任何年龄)=>系统将生成一个唯一的条形码(16位)并打印出一张新的身份证(上面只有条形码)
问题:
如果客户忘记/丢失身份证或有时卡太旧而无法扫描条形码,客户可以在登记站输入他们的第一个姓氏和出生日期然后系统将搜索(名字+姓氏+出生日期)并确定该客户是否存在并将其签入。但可能有多个同名姓名+生日的人: - 系统然后可以显示所有匹配的人到屏幕,但客户怎么知道他们自己是谁? - 如果系统不允许将具有相同名称和dob的客户首先保存到数据库,则可以避免这种情况。但是那个“第二”的顾客会非常沮丧,因为他/她没有卡片。))
编辑:
我如何处理这个问题,我的意思是这只是一个办公室,所以我们不能要求SSN或驾驶执照...办理登机手续的过程必须简单快捷,其中一些可能是一个孩子谁没有任何身份证或电话(他们会与他们的父母/监护人一起来),他们中的许多人都是老年人(年龄超过70岁,甚至80岁)他们甚至无法输入为什么“身份证 - 扫描想法在这里帮助他们 - 他们需要做的就是扫描他们的卡...(我认为他们永远不会记得“安全问题”),短信验证将无法正常工作(电话号码可能会改变,并非所有客户都有一个电话,承运人将参与这里(承保范围,费率......)我不想要任何这样的事情。
在阅读完所有建议后确定:
我正在考虑 4位密码(如信用卡背面的3位数安全码) - 它将打印在身份证中,附有说明和所有内容,这将与唯一的客户编号(用于扫描)不同,这里它是如何工作的: - 在创建新的客户ID卡时,系统会要求额外的4位密码并将其打印到卡上,还会在其中放置算法以确保具有相同名称+ dob的客户不能有相同的密码。
如果客户无法使用/丢失卡,在他们输入姓名+ dob进行登记后,系统只会询问此4位数密码(如果有超过1个匹配的人),否则,如果只有一个人匹配,系统会立即签入。
如果他们忘记了这个密码,我的意思是他们没有别的办法让他们自己,接待员必须以某种方式帮助他们,你们怎么想,我仍然愿意接受建议
我的最终解决方案:
因为卡上没有其他(客户信息)而不是条形码(客户编号),因此最好的方法是预先印制(预制)它们,让它们准备好在桌面上给新客户或用于卡更换目的。
创建新客户时,接待员会手动输入名字+姓氏+ dob + 电话号码(可选)+电子邮件(可选)+家庭住址 +客户编号(同样)就像他们即将给予顾客的卡片一样)+。提交,系统将检查一切,如果一切都是好接待员然后给客户一张新卡=>客户回到值机站并办理登机手续。
当客户忘记卡=>他们需要看到接待员=>做验证过程=>接待员会手动检查。
当客户丢失卡或卡损坏时=>他们需要看到接待员=>做验证过程=>接待员然后给客户一张替换卡=>客户回到值机站并办理登机手续。
答案 0 :(得分:3)
让每个客户告诉你两个"安全问题"风格数据:出生地点,最喜欢的菜肴......这些可以作为统一者。
然后您可以防止输入重复项,因为如果存在冲突注册,客户必须简单地选择其他问题。
答案 1 :(得分:2)
一些漫无边际的想法:
您可以为用户分配PIN码,并使用该PIN码使帐户具有唯一性。大概是为了确保它是独特的你必须分配它,你不能让他们发明一个。 (你可以让他们发明一个,然后验证它是独一无二的。允许人们使用对他们有一定意义的数字以便他们记住它们可能会很好。)最重要的是,如果这个人丢失了他的PIN,你被卡住了如果密码印在卡上,那么如果卡损坏或磨损,是的,他们可以输入密码。但如果他们丢失了卡片,他们可能没有其他PIN码记录。
您可以询问他们的电话号码并将其用作标识符。我的杂货店为他们的折扣卡做了这件事。我想现在几乎每个人都有电话。对于不这样做的小编号,您可以生成一个看起来像电话号码但无效的随机数(因此不会巧合地复制任何真实的电话号码),并将其用作PIN。例如,如果您在美国,则可以将生成的数字全部开始555-555,然后将最后4位数字设为PIN。然后,唯一能成为问题的人就是那些没有电话而丢失了卡片的人,这应该是一个非常小的数字。
这个系统中是否有任何保密信息,或者有人承诺花钱?我的意思是,如果有人走到售货亭并输入隔壁邻居的姓名和出生日期并访问该人的帐户,那会不会有问题?你还没有说出系统的功能。如果进入系统让某人访问该人的医疗记录或银行账户或他最后一次供认给他的牧师的抄本,那么你必须采取措施防止未经授权的访问,你不能让任何人提出并宣称是别人进去了。几年前,我想起了一个案例,记者得到了一些政客的DVD租赁记录。他显然希望发现他已经租了很多卑鄙的色情内容或者其他一些可以用来使这个家伙难堪的人,尽管事实证明这主要是西部片。我的观点是,在正确的情况下,即使是看似无辜的信息也会让某些人感到尴尬,所以你必须要小心。
人们多久丢失或损坏卡片?在这种情况下,是否有可以帮助某人的职员?也就是说,如果99%的时间有人进来,刷他的卡,他就进去了,一切都很好,而且有人丢失或损坏卡的次数非常少,你可以说在那些情况下他们必须去找一个职员并显示损坏的卡片,或者如果他们说他们丢失了卡片,请出示身份证明。然后职员可以验证任何东西并给他们一张新卡。您可以按名称搜索职员,并有一个显示出生日期和地址的屏幕,询问客户他们的出生日期和地址是什么,如果匹配一个,给他们一张新卡,如果没有,说我很抱歉你'没有存档。这与向客户显示出生日期和地址列表并让他们选择一个(如客户可以)的安全性观点完全不同,(a)键入一个共同或听到的名称,然后选择任何匹配的条目,显示起来,甚至(b)用它来查找他们想要骚扰的人的地址,然后你可能要承担责任。
答案 2 :(得分:0)
在当前的项目中,我遇到了寻找客户的相同方式。该项目是关于电视的东西,因此第二级“筛选”是解决的问题。我认为您需要扩展客户信息:用户名,电子邮件,头像或易于记忆的东西(或发送带代码的短信)。此外,您还可以添加用户友好的行为:如果客户无法决定关于他/她的记录,则客户应该完成向导并添加所需信息。是的,很难为所有客户找到一般证据,但您可以支持多种额外信息。 换句话说:名字,姓氏和出生日期不足以明确地找到一个人。