开发者社区> 问答> 正文

类似漂流瓶功能设计完成,跪求有人帮忙改进:报错

@开心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,随机发送给他们。

问题:每次都要读取数据,更新数据

答案:想得到一个不这样操作数据库的方法。效率有所提高,最好有表设计。谢谢了!

展开
收起
kun坤 2020-06-07 22:16:51 854 0
1 条回答
写回答
取消 提交回答
  • 你不要把问题局限于php这个板块问,我觉得,思路思路很重要,所 以其他语言的人也可以帮你######

    用户表: 中有字段receivedbottle记录收到的瓶子。比如:1,2,3(指的是漂流瓶的id,逗号隔开)

    死就一个字


    ######顶一个######好好看看数据库范式吧######

    1,漂流瓶表

    2,用户表

    3,用户和漂流瓶关系表,多对多。

    暂时想到这些吧,你满意不?

    ######谢谢了,开始也是这么设计的,看来还要改回来。######
    中有字段receivedbottle记录收到的瓶子。比如:1,2,3(指的是漂流瓶的id,逗号隔开)

    单独做一个表,保存每个用户收到的瓶子,多对多。

     

    ######

    腾讯似乎是鼻祖, 那我就认真分析一下腾讯的算法吧:

    1: 腾讯似乎非常巧妙的设计了, 一人一天只收一次!

    2: 优先男<>女.

    3: 次优区域, 现在细化到区了, 这里面大有文章.

    4: 假如你扔回海中次数过多, 腾讯就淡化你, 三天, 五天才自动来一次.

    5: 似乎腾讯还知道节假日不发这个道理.

    6: 识别你是否在线, 只有你在线它才发.

    7: 重复概率问题, 几十年, 不让你丢中同一个人.

    8: 瓶类型过滤.

    ...............................

    简单总结出这些... 腾讯的强大之处在于细节.

    2020-06-07 22:16:56
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
长安十二时辰背后的技术秘籍 立即下载
PHP安全开发_从白帽角度做安全 立即下载
PHP安全开发:从白帽角度做安全 立即下载