文章列表取每篇文章最新的3条评论,请问大家怎么设计?
<code>article表 {article_id,title,content} comment表 {article_id,comment,created(时间戳)} </code>
回复内容:
文章列表取每篇文章最新的3条评论,请问大家怎么设计?
<code>article表 {article_id,title,content} comment表 {article_id,comment,created(时间戳)} </code>
如果单论数据库表的设计,你都已经给出来了,这是最直观的设计!
- 如果现在的设计能够很好满足你的需求,工作的很好,那就没必要为了所谓的易于扩展、性能等理由去重构。简单直观且能满足当前的需求,就不要盲目的去过度设计,每次显示评论的时候,就老实地关联查询,然后
order by created
,然后取前3条记录; - 如果无法满足需求(一般大多是性能需求),那就需要分析性能瓶颈在那里。个人先猜一下:一般瓶颈也就是在数据量很大时候,最新3条评论的获取。针对这个性能热点,简单给一下个人的看法,欢迎拍砖:
1、最简单的做法,加索引(article_id, created)
,能够很好增加SQL的查询效率,基本能够解决问题;
2、此外,可以在article表增加一列,存储最新3条评论的信息,这个信息可以根据(comment_id, created)
组合,这样既方便插入新评论时的更新,也可根据主键id直接查询最新3条评论,不过这种方式,增加了插入评论时的开销,需要权衡;
3、再者,可以利用缓存,将最新3条评论放到缓存中,当然最好是能够放到内存缓存中,如果数据量大的话,可以考虑类似memcache的分布式缓存,这样同样可以大大减轻数据库的查询压力;
4、最后,稍发挥一点,直接上nosql数据库,类似mongodb、redis等nosql数据库能够很容易满足这样的业务场景,只是这样带来了新的学习成本。
上述只是个人的一家之言,对于大多数这样的业务场景,在数据量不是特别大的时候,类似楼主的表结构,外加有效的索引,完全能够handle。

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

ホットトピック



