首页 > 代码库 > 谈一谈用户的默认收货地址
谈一谈用户的默认收货地址
如题,今天要谈一谈用户的默认收货地址
为什么要谈这个问题,感觉这是一个非常成熟的设计和解决方案了,为什么还要谈。
谈这个的导火索是产品妹妹过来跟我说咱们的用户地址是不是用问题,为什么我的地址不是上一次的收货地址了。
然后我balabalabala说了一堆,我想我们是想要做一好的产品,还是要做一个产品,是为了解决问题,还是为了更好的解决问题,
现成的京东淘宝当当可以参考的模式,我们为什么不学习一下。
然后我balabalabal说了一堆之后,让产品妹妹看了设计,看了数据库,让她再次看了自己的收货地址,然后产品妹妹说我在看看之后,走掉了。
我不知道我说的话对她会产什么影响,或者让她怎么看我。
但我自己感觉我们是为了应该更好的解决问题,是为了做一个好产品,而不是为了解决问题而解决问题,为了做产品而做产品。
所以今天把这个问题拿出来再讨论一下。
我最近确实是在练习控制情绪,所以为了控制情绪,缓解压力,先来一段,无论如何都需要寻找别人优点,发现美丽,而不能吐槽,不能抱怨。
上帝给了我明亮的眼睛和锐利的智慧,是让我发现身边的优点和美好,肯定上帝不希望我对别人吹毛求疵,所以要包容,微笑。
好了,直接谈需求和解决方案
电商平台上用户的收货地址也是一个值得思考的问题。
我们自己的需求是如果用户下单时不填写地址,默认展示使用用户上次购物时输入的收货地址,这都无可厚非也很合理。
但是,发现其他APP,如京东,当当,天猫等,他们设计是如果用户不输入收货地址使用默认的收货地址,这也是很合理的。
这两种不同的方式有很大的区别和不同,但是都非常合理,就是看各自偏好。
上一次的收货地址不一定是默认的收货地址,默认的收货地址不一定是上次收货地址。
还有就是如果本次购物填写的是全新的购物地址,则为用户新增一个收货地址。
还有设置收货地址是否默认的一个行为。
说道这里我都感觉没有讨论的必要了,因为感觉这已经非常明确了,
但是在重构创建订单时,看到每次生成订单都要去查询之前的订单,并且要查到之前最后一次的收货地址,这给人的感觉就非常不爽。
那么能不能改成选地址了就去查地址表,查订单就才查订单表。
那么地址表要怎么设计怎么体现出最后一次使用。
我能想到的大概是这个样子
user_address(
int id pk,
int user_id,
string province,
string city,
string street,
string detail,
timestamp create_time,
timestamp update_time,
boolean is_default,
timestamp last_use_time,
string hash_code -------- 可以删除了,当时不知道怎么想的。
)
我想的是大概是这个样子,一个用户有多个地址,
每个地址都有自己的创建时间,更新时间,是不是默认地址,以及最后的使用时间。
当时也不知道是不是脑子进水了还想了一个hash值,来表示一条地址信息是不是唯一的,想想也是多余,都忘了想哈希值的初衷了,但也把它写出来,能看到我的一个思考过程。
通过这样的设计,这样就可以根据业务需求来决定是使用最后一次使用过的地址,还是使用默认地址了,而不是每次都要重新去从订单里去查。
今天谈这个目的一是想把这个设计说明白,二是想说代码真的是需要优化,而优化的前提是数据库要能支持。
再就是产品要从多用户的角度去考虑问题,自己多使用自己的产品,好用,易用,不是开发说的,不是老板的意思,而是正真的一个用户的体验。
想起了一句话说乔布斯的牛就在于他能让自己在使用产品是瞬间秒变白痴,想来那是真正的从一个用户使用者的角度去看问题,思考问题了。
谈一谈用户的默认收货地址