0

考虑到一个名为 的表中有数千条新闻sn_news,其中一些新闻可能同时可供X客户使用,但有不同的id,我想知道如何实现新闻排序功能!

在其面板中显示客户端 Y 的 X 新闻,如下所示:

ID          Category            Title
_______     __________________  ____________________________________________
1572709     Futbol Earthquakes  Lluvia de goles en San José
1568657     Eventos Locales     Maná rayó el sol de la Bahía
1562970     Deportes Locales    SJ Earthquakes vence a RSL, es líder
1546516     Locales             La magia de la música en la niñez
1546513     Locales             80 Años de Fotografía mexicana en SFMOMA
1546511     Locales             Clases gratis de diseño solar en West Valley College
1546507     Locales             Javier Sicilia visitó   12 de abril de 2012     Locales (noticias cliente)
1546504     Locales             Celebrando el español a través de la poesía
1546502     Locales             The National Hispanic University Receives Commendation from San Jose City Council
1546498     Locales             Clases de costura en el CET
1546497     Locales             Centro del Este de San José al servicio de la comunidad
1546481     Educacion           Ayuda en español para elegir universidad
1546479     Educacion           Aumentan programas de idiomas en escuelas públicas de California
1546478     Educacion           Program uses visual arts as a better way to learn English
1546477     Educacion           Niño hispano de 4 años es pintor
1546473     Educacion           Perspectivas en el Sistema Educativo 2012

订购新闻的最佳方式是什么?

  • 用 Y 改变新的 id X?
  • 添加一个名为 的新字段,news_order如果客户端有 20 条新闻,它将包含根据字段排序的从 1 到 20 的数字id,因此排序将始终在该字段上完成?
  • 还有什么办法吗?

希望我解释一下自己,如果没有,请告诉我!!

更新

所以只是为了澄清一些事情,这不是我的应用程序,我没有构建它并且是一个真正的 * * * 代码我只需要“更新”它并添加一些新功能。该应用程序相对简单,但由于代码和一些数据库结构是很久以前实现的,从未得到“改进”,现在是后果。

有一个日期字段,这就是检索新闻时它们的排序方式(抱歉错误)。

与不同的重复消息id是因为应用程序的工作方式,它很复杂但合乎逻辑。

4

1 回答 1

2

除了唯一标识符之外,您不应将 ID 字段用于其他任何内容。将它用于任何类型的功能,包括排序,都是不好的做法。

添加“sort_order”字段是正确的解决方案。

我仍然想知道您是否也没有发布日期的字段。如果您正在处理新闻,它似乎应该在某个地方。如果您有发布日期,那么最合适的做法是按该日期订购(大概使用“DESC”)。

但我也必须想知道,就像评论中的“最低点”一样,为什么你有不同客户的重复条目。适当的解决方案是为客户创建一个表,为新闻创建一个表,然后使用一个中间表将它们绑定在一起。但这超出了您的问题范围,因此我将其保留。

于 2012-05-09T11:34:19.590 回答