php - 数据库投票表设计
迷茫
迷茫 2017-04-11 10:36:56
0
3
850

如果是采用mysql数据库做投票统计,方法一:会采用text类型的字段存放用户的user_id,但是不好拓展,用户量大了之后或者用户id大了之后字段就容纳不了了,只适合用户量小的时候

方法二:也会采用多对多的设计[id,teacher_id,day,user_id],一次投票就是一条记录,这样比较方便拓展,但是数据量会比较大
请问还有没有更好的方法?或者还能用其他数据库方便做投票统计的

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

reply all(3)
Peter_Zhu

Redis集合 比较适合

左手右手慢动作

可以使用Redis 简单计数器实战

Redis常见七种使用场景(PHP实战)

Ty80

一、建议考虑使用MongoDB;MongoDB提供了极限性能以及强大的功能:

1、极限性能:分布式系统,横向扩展能力强;

2、强大的功能方面,例如在NoSQL领域中领先的统计分析能力,MongoDB的aggregation做的很优秀。

MongoDB是在性能扩展和强大功能两个价值取向上平衡做的领先的NoSQL数据库。

二、同时,MongoDB的数据模型设计是一件令人愉悦和简单易行的事情,直接面向您的查询/增/删/改的需求来设计您的数据模型。

1、中小应用设计的collection的数量不需要太多,以满足业务需求为主,不需要过度担心数据冗余;

2、MongoDB的数据模型设计主要是两种思路:

1)嵌入思路embedding;
   
   大部分情况下,使用嵌入思路建模;
   
2)关联思路referencing;

   一般在担心单个文档过大(超过16M)的时候考虑;
   或者有对嵌入的文档有单独查询/操作等需求的时候,才考虑;

三、针对您的需求:

您可以考虑将投票的信息保存在数组中,并设置field记录总数;

大概情形如下:
{_id:
 xxx:
 xxx:
 count:(记录总数)
 Voter:[{id:
          xxx:
          time:}]
 }

您具体开始数据模型设计时,可以进一步交流。

Love MongoDB!Have Fun!


戳我<--请戳左边,就在四月!MongoDB中文社区深圳用户大会开始报名啦!大神云集!

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template