Php 是否可以将客户的用户名id替换为他们的电子邮件?
我想用他们的电子邮件替换用户名id。这样可以吗 例如,在MySQL表中:Php 是否可以将客户的用户名id替换为他们的电子邮件?,php,mysql,Php,Mysql,我想用他们的电子邮件替换用户名id。这样可以吗 例如,在MySQL表中: client_id som665 som881 som876 som887 我想用未来客户的电子邮件代替它们,例如: client_id som665 som881 som876 som887 xyz123@gmail.com xyy333@gmail.com xcv5557@yahoo.com 问题:- 用电子邮件替换client_id如som881是否会使我的软件(或查询)变慢?当我在电子邮件上使用下面的查询而不是
client_id
som665
som881
som876
som887
我想用未来客户的电子邮件代替它们,例如:
client_id
som665
som881
som876
som887
xyz123@gmail.com
xyy333@gmail.com
xcv5557@yahoo.com
问题:-
用电子邮件替换client_id
如som881
是否会使我的软件(或查询)变慢?当我在电子邮件上使用下面的查询而不是像som881
这样的小id时
$sel_service = "select * from all_services where client_id='$client_id' order by sub_cat_name"
现在,我的客户使用客户id登录,如
som881
,与电子邮件地址相比,这对他们来说很难记住。我也无法提供“忘记密码”功能。这是电子邮件的一个很好的用途,因为公司的邮件服务器不允许客户端使用相同的用户名,所以您甚至不需要在这个id字段上设置主键约束。
您知道,如今数据库通过人工智能找到了在记录之间搜索的最佳算法,因此您唯一需要担心的是:
以牺牲复杂性为代价为客户提供舒适性是否值得
如果是的话,在我看来,如果服务器响应稍微慢一点,就不会有任何问题
我建议您至少使用一个安全服务器服务层,在客户端和数据库服务器之间使用预创建的类,这些类接受客户端连接并创建到数据库服务器的单向虚拟连接,用于搜索登录信息,而不是显式SQL命令,以提供更高级别的安全性并拒绝SQLInjection这是电子邮件的一个很好的用途,因为公司的邮件服务器不允许客户端使用相同的用户名,所以您甚至不需要在这个id字段上设置主键约束。 您知道,如今数据库通过人工智能找到了在记录之间搜索的最佳算法,因此您唯一需要担心的是: 以牺牲复杂性为代价为客户提供舒适性是否值得 如果是的话,在我看来,如果服务器响应稍微慢一点,就不会有任何问题
我建议您至少使用一个安全服务器服务层,在客户端和数据库服务器之间使用预创建的类,这些类接受客户端连接并创建到数据库服务器的单向虚拟连接,用于搜索登录信息,而不是显式SQL命令,以提供更高级别的安全性并拒绝SQLInjection字符串越长,查询用户所需的时间就越长,因为它将匹配更多的字符,
因此,如果你想让它与电子邮件(是的,它更容易为用户)。 必须将此字段作为唯一索引。
通过这种方式,mysql将对电子邮件进行索引,并在不扫描整个表的情况下查找用户记录。
但是它的缺点是它会占用更多的索引空间。但是会很快
如果用户的记录多于(服务多于),则必须使其索引不唯一字符串越长,查询用户所需的时间越长,因为它将匹配更多的字符,
因此,如果你想让它与电子邮件(是的,它更容易为用户)。 必须将此字段作为唯一索引。
通过这种方式,mysql将对电子邮件进行索引,并在不扫描整个表的情况下查找用户记录。
但是它的缺点是它会占用更多的索引空间。但是会很快
如果用户拥有的记录多于个(服务多于个),那么您必须使其索引不是唯一的总体而言,您的问题非常广泛,没有您正在使用的应用程序的详细信息 我想说,一般来说,是的,允许用户使用电子邮件地址登录是个好主意。如果你主要关心的是经济放缓,这不应该是一个问题,因为这只会影响登录,而登录并不经常发生 从设计角度来看,用户可能应该有两个标识符:
client\u id
作为索引值引用数据库中表之间的数据,并作为用户登录的用户名。我的建议是按照上面列出的标准化数据
如果不规范化数据,可能会导致多个表中的索引列过大。要存储电子邮件地址,您需要使用有效长度的字符串(
CHAR
,VARCHAR
)列。对于规范化数据,您只需在每个表中输入INT
/BIGINT
。在这种情况下,允许用户使用电子邮件地址可能会减慢速度,因为它可能需要调整客户id
列的大小。总体而言,您的问题非常广泛,没有您正在使用的应用程序的详细信息
我想说,一般来说,是的,允许用户使用电子邮件地址登录是个好主意。如果你主要关心的是经济放缓,这不应该是一个问题,因为这只会影响登录,而登录并不经常发生
从设计角度来看,用户可能应该有两个标识符: