1、文章库增加一个文本型字段,该字段存储已经提交过“赞”动作的用户ID,ID间用特殊字符分割,理论上只要不用数字做分隔符就足以实现要求,不过建议用半角逗号,这样可以直接利用SQL内置的函数进行字符串比对,效率稍高
2、创建一个库表,存储已经提交过“赞”动作的的用户ID和文章ID,以及你想存储的任何信息,比如提交动作的时间、IP、浏览器类型,屏幕分辨率等等——如果你觉得有用的话
方法1的好处是如果你不需要进行统计的话,处理起来很方便,整体效率比较高
方法2的好处是方便统计,你可以得到任何一个文章的赞动作用户列表,或者很高效的检索某个用户对哪些文章提交过赞动作。不过随着数据的积累,此表可能变的非常庞大,运行效率会逐渐降低。
对于游客的用户,我打算使用localStorage来进行存储,匹配文章ID和客户IP,请求点赞接口前先进行这两点的对比,如果是新的点赞,就保存这两个信息,下次点赞先进行判断,若存在而且是相同的才进行请求。