在电子商务网站上存储非注册用户的订单?

时间:2014-05-07 06:46:28

标签: sql database-design e-commerce

我们正在尝试为我们的电子商务项目添加新功能,目前正在努力使用无注册选项。

我们目前正在users表格中存储一般用户数据(用户名,生日等),并且与user_addresses(递送地址,电话,...),user_orders有关系({1}}发票总额,日期,...),user_order_items(以什么价格购买的产品)表。管理面板使用这些表来跟踪订单。

实现无注册选项的最佳方法是什么?我们想用随机密码注册用户的名字和电子邮件地址。但如果用户想下次注册,因为电子邮件地址已经注册,这将是一个障碍。你推荐什么?

3 个答案:

答案 0 :(得分:3)

你有3个选择:

1)每个订单都需要注册和验证用户

2)订单不要求用户注册/验证。 在这种情况下,你必须保护自己免受机器人和用户淹没。 所以你可以:

  1. 添加验证码(针对机器人)
  2. 添加电子邮件确认(用于验证) - 只有在点击邮件中的特殊链接后,订单才会保存在数据库中。
  3. 非常通过电话订购每个订单
  4. 您可以仅为邮件发送来自非注册用户的订单,而不是将其存储在数据库中(不是首选)
  5. 地址,联系方式和其他信息您可以在oder表中保留(对于注册用户,它们将为空)

    3)4)您可以将这些选项混合在一起。

    请记住,用户应该有注册的好处(例如:订单历史记录),否则没有人会注册。他们将使用最简单的订购方式。

    enter image description here

答案 1 :(得分:2)

注册用户和非注册用户之间的主要区别通常是前者可以登录并查看他们的订单,而后者则不能。

所以你可以存储它们,只是你需要一个伪名称而没有非注册用户的密码。也就是说:1。使密码在您的表中可以为空,2。只要有人订购而无需注册,就可以为用户名创建一个UUID。

(也许你必须让更多的字段可以为注册用户使用,但不能注册非注册用户。)

编辑:当然,您也可以保持密码不可为空,并生成一些密码以及永远不会使用的用户名。

答案 2 :(得分:1)

是否可以使用电子邮件地址作为用户名?电子邮件地址是唯一的,它不是客户要记住的额外细节。

然后,如果注册客户忘记或想要更改密码,则会向他们发送电子邮件以完成此过程。对于尚未注册的客户 - 实质上与忘记密码完全相同。他们可以发送电子邮件并设置密码。

否则你不会让某人使用空白密码登录 - 因此将该字段留空不会成为问题。

相关问题