Jeek信息社 文章合集

一个投票API的设计

2017-10-19  本文已影响130人  5ac7ecf11d1d

首先,请不要觉得这个任务很简单。这里我们一起来分析分析需求及如何实现。

管理员可以新建一个投票。
投票有两种,一种是多选的,另外一种是单选。

单选的比较简单,所以我们先来探讨单选投票。

由于JPSP用的数据库MySQL是不支持数组类型的,并且我们不知道用户需要新建一个多少个选项的单选投票,因此我们只能用一个字符串来代替一个字符串数组,多个选项之间的内容,用一个符号进行间隔
(不要用常用的符号),当需要使用时,在把一个字符串分割成多个字符串,这个自己查函数。
然后是如何储存每个用户的投票信息,也就是用户投了哪一票,还是不能用数组。那么就用0100表示选择第二个,0010表示选择了第三个,更多选项的投票也是这样。
既然是单选,所以在将数据插入数据库之前要进行检验,检验到底是不是单选(前端发送的投票信息应该也是000100这样的,和检验用户有没有选)。怎么检验就不说了。
然后说说多选。
多选相较于单选多了1个需求,选项个数。后端需要检验用户的投票有没有在范围内,插入数据是010010这样的格式。

所以把两者放在一起,数据表应该这样设计。

总共为两张表。

第一张是投票的表,记录投票的标题,投票的选项,投票发起人(外键),投票的各个选项,投票是单选还是多选。
另一张表是每个用户投的票的信息。
用户(外键),投的是哪次进行的投票(外键),(投票时间),投票的选项。

另外还有一个问题没有解决,就是投票信息如何进行统计,单选还比较简单,多选投票统计还需要考虑数据库性能的问题,还需要思考一下。

实际情况下,不太会使用无穷个投票选项的方案。

上一篇下一篇

猜你喜欢

热点阅读