php – 在数据库中存储有关匿名/访客用户的信息的方法有哪些?
我们的应用程序具有其他功能之间的在线商店,通常请求用户在完成销售之前注册,在此过程中创建唯一的customer_ID.当他们返回时,他们可以登录,并从数据库中检索他们的联系方式和交易记录.
我们现在正在探索在“匿名”或“客户”客户的情况下做什么,向不想注册的客户开放网上商店,以及登录后端应用程序的销售,电子邮件,邮寄地址等都太耗时了.该解决方案也在网上商店以外的应用程序. 多个公司使用相同的数据库,数据库建立在party model结构上,因此我们已经探索了几个选项: >将所有匿名客户存储在事务表中的一个预定义的customer_ID下: > customer_ID = 0,每个匿名用户,customer_ID>每个真实用户为0 >这是直接的硬编码到应用程序 >如果在数据库中,可以做什么数据库级的约束来确保它始终存在? > customer_ID与公司party_ID相同 >更容易确定每个公司的总销售额等 >为每个新的匿名客户生成一个唯一的customer_ID(每个会话) >如果同一个物理用户返回怎么办?将有许多记录重复相同类型的数据;电子邮件,送货地址等 >使用另一个唯一的键,例如电子邮件地址来引用客户 >不总是可靠的,因为有时使用多个电子邮件地址,或者留下旧地址. >其他一些Stack Overflow启发的解决方案! 加成 在其他地方已经提出了#2和#3的组合 – 试图为每个客户存储单个记录,如果可能的话,使用电子邮件地址,或者如果不是,每次访问都会有新的记录. 我应该指出,我们不需要为每个匿名客户存储记录,但似乎关系数据库是为处理关系而构建的,因此在事务表中没有引用NULL或customer_ID.一个实际的客户记录似乎错了… 我还必须强调,这个问题的目的是确定什么现实的解决方案是记录“休闲”交易,没有邮寄地址或电子邮件地址(想象一个超市chekout)以及在线商店交易,电子邮件地址和给出邮政地址是否存储. 过去,SO社区使用了哪些解决方案?
假设您需要所有在线订单的电子邮件地址,您可以在每个订单完成后,为每个客户创建一个临时帐户,不要登录.
这可以通过使用送货地址和在结帐时提供的其他信息来填写帐户,并向其发送随机临时密码(可选地将其标记为要在第一次登录时更改,如果该功能已构建)进入网站).这需要尽可能少的努力来设置帐户,并允许他们登录以检查其订单状态. 由于您的数据库中的主键是customer_id,如果他们继续使用相同的电子邮件/地址/ etc等新帐户,则不应该导致冲突,除非您已经有代码来防止重复.有人创建多个临时帐户是很少见的,因为使用电子邮件发送的密码更容易登录,而不是再次输入数据. 对于后端订单,我们通常以与上述每个客户相同的方式创建一个帐户.但是,如果他们没有电子邮件地址(或者他们只想通过电话购买),我们会生成一个帐户,其中包含运送信息和一封空白的电子邮件地址(必须编写一个例外以不发送临时密码/订单确认时为空白). customer_id给他们,他们的运输信息和公司名称存储在帐户中以查找并加快未来的订单. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |