Cyb*_*kie 13 php mysql database database-design
我正在尝试确定"跟随/取消关注用户"功能的最佳表设计,类似于Twitter (编辑:我不是在制作类似Twitter的应用程序.)下面是我当前的表设计和php处理.我不确定这是否是最好的方法,并且非常感谢您的反馈.
CREATE TABLE IF NOT EXISTS `user_follow` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `follower` int(11) NOT NULL,
  `following` int(11) NOT NULL,
  `subscribed` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  PRIMARY KEY (`id`),
  UNIQUE KEY `follow_unique` (`follower`,`following`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=76 ;
在跟随时,将追随者ID添加到该follower字段中,并添加将要遵循的用户的ID following.我还记录用户订阅的日期跟随该subscribed字段中的另一个用户.订阅日期可能用于排序.
当用户取消关注时,我只删除相应的行.
为了防止重复的行,我创建了列follower并且是following唯一的.如果用户已经关注了id并点击再次关注,则会收到数据库错误1062.例如
密钥'follow_unique'重复输入'62 -88'
显然,当已经跟随用户时,跟随者会看到一个unfollow按钮.这是通过检查2个用户之间是否存在跟随者跟随表行来实现的.如果rows > 0我显示unfollow否则follow.
那么你觉得呢?
我认为这是一个非常好的设计,应该很好地满足您的需求.一件事; 你应该做follower和following外键.哦,为了简单起见,我将subscribed列TIMESTAMP DEFAULT CURRENT_TIMESTAMP专门用于捕获用户订阅的日期时间.
| 归档时间: | 
 | 
| 查看次数: | 4870 次 | 
| 最近记录: |