Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP/MySQL模式来订购帖子?_Php_Mysql_Database Design_Design Patterns - Fatal编程技术网

PHP/MySQL模式来订购帖子?

PHP/MySQL模式来订购帖子?,php,mysql,database-design,design-patterns,Php,Mysql,Database Design,Design Patterns,我有一张桌子,我把所有的内容放在那里。每行一根柱子。我希望能够操纵帖子的顺序,这样我就可以把一些帖子推到顶部或底部 而且,每个帖子都属于某个类别。(我认为,在订购某些类别内的职位时,附加参数会有所不同) 请给我一些提示/代码模式,你会怎么做 p、 我不想添加新的表,建立更多的关系,我希望它尽可能简单…我个人会通过向表中添加一个默认值为100左右的排序索引字段来实现这一点。然后,您可以通过降低邮件的排序顺序将其向下推,或通过增加排序顺序将其推到顶部。通过从一个特定的数字开始,您就为帖子的默认排序建

我有一张桌子,我把所有的内容放在那里。每行一根柱子。我希望能够操纵帖子的顺序,这样我就可以把一些帖子推到顶部或底部

而且,每个帖子都属于某个类别。(我认为,在订购某些类别内的职位时,附加参数会有所不同)

请给我一些提示/代码模式,你会怎么做


p、 我不想添加新的表,建立更多的关系,我希望它尽可能简单…

我个人会通过向表中添加一个默认值为100左右的排序索引字段来实现这一点。然后,您可以通过降低邮件的排序顺序将其向下推,或通过增加排序顺序将其推到顶部。通过从一个特定的数字开始,您就为帖子的默认排序建立了一个基线

SELECT * FROM `posts` ORDER BY sort_index DESC, date_posted DESC
这将确保具有相同排序索引的帖子根据发布日期进行二次排序


它还允许您通过一个小脚本设置(作为cron)轻松地自动使帖子在一段时间内排名下降,以减少帖子的排序索引,直到它们达到默认值。

假设您有一个包含以下列的表:

  • 身份证
  • 职位
  • 类别
您可以添加一个名为rank的新整数列。使用新的排名栏,您可以按如下方式排列帖子:

SELECT `post` from tblPosts order by category, rank;

现在,您可以通过为帖子分配排名来对帖子进行排序。在上面的示例中,较小的数字将列在顶部,较大的数字列在底部。

是否
选择。。。按订单(所需订单)
不适合您?如果没有,为什么不呢?我也有日期(更新和插入),类别id,但我希望能够手动更改帖子的顺序,将其中一些推到顶部或向下推…我正在寻找模式如何设计数据库,以便我可以轻松地更改帖子的顺序如此有趣的一个。。如果有人有其他线索的话,谢谢你。。这很简单,效果很好,但不幸的是这还不够。我必须找到更复杂的东西。你到底想做什么?你最初的帖子有点模糊,所以我猜你在找什么。正如我所说的。我希望能够改变职位的顺序。有时记者会发布3-4篇文章,但他们不满意页面上显示的顺序,因此他们想改变顺序。此外,文章可以在不同的类别中,这使得事情有点棘手,因为它需要“顺序”处于组的级别。如果你改变了某些物品的类别,你就需要松散的订单索引等。。