【发布时间】:2013-10-08 23:03:34
【问题描述】:
这很可能以前有人问过,但我找不到。
我正在构建一个页面,供用户浏览其他用户的个人资料。我目前的计划是按照上次显示时间和上次在线时间的顺序显示配置文件。
我几乎给数据库中的每个项目一个 last_displayed 属性,其中包含上次显示配置文件的时间戳。显示配置文件后,时间戳将被更新,并且在显示具有较旧 last_displayed 时间戳的其他配置文件之前不会显示。
同时会有一个 last_online 属性,其中包含配置文件上次在线时间的时间戳。这是为了在显示老用户之前显示最近在线的用户。
现在,当实际查询数据库以显示要显示的配置文件时,我会扩大 last_displayed 和 last_online 的范围,直到找到足够的配置文件。
我认为此功能与约会网站的功能没有什么不同。
所以我的问题是:有没有更好的方法来动态显示用户配置文件?
感谢您的阅读!
【问题讨论】:
-
我对您的数据库设计没有任何改进。但是,为什么要扩大范围直到找到足够的配置文件?
ORDER BY last_online LIMIT $num不应该做这项工作吗? -
@TheWolf 好吧,我希望它由 last_online 和 last_displayed 订购。这样,如果配置文件最近是 last_online 但很久以前是 last_displayed,则它应该显示在最近 last_online 和最近 last_displayed 的配置文件之前。我希望这是有道理的。
-
您是否开发了一个公式来确定用户显示的确切顺序?如果这个公式不是太复杂,你也许可以让 MySQL 来完成选择用户和排序的工作。
-
现在公式涉及增加一位数,这直接增加了 last_online 和 last_displayed 的范围。这些范围增加的速度仍然需要一些调整,但功能是存在的。该范围循环并增加,直到找到足够的配置文件。不过,我会研究一下 mySQL 是否可以为我做更多的工作。感谢您的意见!
标签: php mysql sql database yii