@开心303 你好,想跟你请教个问题:
题目:如何实现类似漂流瓶功能
表设计:
漂流瓶表:
CREATE TABLE `bottle` (
`id` int(10) unsigned NOT NULL auto_increment,
`opus_id` int(10) unsigned NOT NULL COMMENT '作品id',
`ad` text NOT NULL COMMENT '广告词',
`addtime` int(10) unsigned NOT NULL COMMENT '添加时间',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='漂流瓶'
用户表:
中有字段receivedbottle记录收到的瓶子。比如:1,2,3(指的是漂流瓶的id,逗号隔开)
实现思路:
1,我发瓶子
2,选出没有关注我的人的id
3,随机发送给他们。
问题:每次都要读取数据,更新数据
答案:想得到一个不这样操作数据库的方法。效率有所提高,最好有表设计。谢谢了!
你不要把问题局限于php这个板块问,我觉得,思路思路很重要,所 以其他语言的人也可以帮你######
用户表: 中有字段receivedbottle记录收到的瓶子。比如:1,2,3(指的是漂流瓶的id,逗号隔开)死就一个字
1,漂流瓶表
2,用户表
3,用户和漂流瓶关系表,多对多。
暂时想到这些吧,你满意不?
######谢谢了,开始也是这么设计的,看来还要改回来。######中有字段receivedbottle记录收到的瓶子。比如:1,2,3(指的是漂流瓶的id,逗号隔开)
单独做一个表,保存每个用户收到的瓶子,多对多。
######
腾讯似乎是鼻祖, 那我就认真分析一下腾讯的算法吧:
1: 腾讯似乎非常巧妙的设计了, 一人一天只收一次!
2: 优先男<>女.
3: 次优区域, 现在细化到区了, 这里面大有文章.
4: 假如你扔回海中次数过多, 腾讯就淡化你, 三天, 五天才自动来一次.
5: 似乎腾讯还知道节假日不发这个道理.
6: 识别你是否在线, 只有你在线它才发.
7: 重复概率问题, 几十年, 不让你丢中同一个人.
8: 瓶类型过滤.
...............................
简单总结出这些... 腾讯的强大之处在于细节.
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。