项目来源于我自己的开源项目 https://github.com/no13bus/ohmyrepo
它利用了github的webhook功能,自动获取用户的repo的star信息,关注人的分布以及关注者的被follow的数量排名, 这样你可以选择直接follow他们。
现在仔细想了想数据库构造,觉得还是有点问题。想请教下大家。
上面是mongo的数据库基本构造
有2个collection 一个是user 一个是event。
user存储的是用户名以及其github的token。
event存储的是star用户自己的项目时候的事件信息,username和user里面的username是一个东西,其中主要的是sender,他又包括了star项目人的用户名(sender_name) 该人的follower数量(followers),以及其所在地点(location).
项目需要查询的是用户(username)自己的项目(reponame)的所有的star的人的地点分布,以及该项目的star人的followers的数量排名。
我自己这么设计数据库的时候发现,如果一个人star了多个项目的时候,那么event里面应该会出现多次一样的sender。应该单独设置一个sender表,想来去想去就又跑到关系数据库的思维方式里面去了。
想问下大家,应该如何设计这样的数据库呢?
它利用了github的webhook功能,自动获取用户的repo的star信息,关注人的分布以及关注者的被follow的数量排名, 这样你可以选择直接follow他们。
现在仔细想了想数据库构造,觉得还是有点问题。想请教下大家。
上面是mongo的数据库基本构造
有2个collection 一个是user 一个是event。
user存储的是用户名以及其github的token。
event存储的是star用户自己的项目时候的事件信息,username和user里面的username是一个东西,其中主要的是sender,他又包括了star项目人的用户名(sender_name) 该人的follower数量(followers),以及其所在地点(location).
项目需要查询的是用户(username)自己的项目(reponame)的所有的star的人的地点分布,以及该项目的star人的followers的数量排名。
我自己这么设计数据库的时候发现,如果一个人star了多个项目的时候,那么event里面应该会出现多次一样的sender。应该单独设置一个sender表,想来去想去就又跑到关系数据库的思维方式里面去了。
想问下大家,应该如何设计这样的数据库呢?