+ -
当前位置:首页 → 问答吧 → php+MySQL 排队应该用咩原理?

php+MySQL 排队应该用咩原理?

时间:2013-09-17

来源:互联网

排队原理谂唔通。师兄可否指点下。
我有几只MySQL record,举例:
R1
R2
R3
R4
顺序 : R1, R2, R3, R4 咁。
假如,我想有input去改佢地既次序,例如,将R3掉去R2前面。变成, R1, R3, R2, R4。
我系咪应该每只record跟一个index number比佢去排队?

又假如,我有两条队。
R1, R2, R3, R4
S1, S2, S3, S4。
我要改到例如
R1, S3, R2, R3, R4
S1, S2 S4
我又应该点做呢?

感激感激。

[ 本帖最后由 oprso 於 2013-8-2 10:25 PM 编辑 ]

作者: oprso   发布时间: 2013-09-17

引用:原帖由 oprso 於 2013-8-2 10:23 PM 发表
排队原理谂唔通。师兄可否指点下。
我有几只MySQL record,举例:
R1
R2
R3
R4
顺序 : R1, R2, R3, R4 咁。
假如,我想有input去改佢地既次序,例如,将R3掉去R2前面。变成, R1, R3, R2, R4。
我系咪应该每只 ...
以下网页或许对你有用:
https://en.wikipedia.org/wiki/Unique_key

作者: xianrenb   发布时间: 2013-09-18

引用:原帖由 xianrenb 於 2013-8-3 09:03 发表


以下网页或许对你有用:
https://en.wikipedia.org/wiki/Unique_key
咁,掉位,打尖,应该点处理呀?

作者: oprso   发布时间: 2013-09-18

引用:原帖由 oprso 於 2013-8-3 10:29 AM 发表
咁,掉位,打尖,应该点处理呀?



你可以设定一个 key ,如叫 x 。
那么排第一位可以是 x = 1 ,排第二位可以是 x = 2 ,如此类推。
那么你提到的问题,只要把相关的㯗位 x 改用正确的数值就可。

作者: xianrenb   发布时间: 2013-09-18

引用:原帖由 xianrenb 於 2013-8-3 16:37 发表


你可以设定一个 key ,如叫 x 。
那么排第一位可以是 x = 1 ,排第二位可以是 x = 2 ,如此类推。
那么你提到的问题,只要把相关的㯗位 x 改用正确的数值就可。
Thanks for ur reply
我都系咁谂。如果,我条队有十个等紧。我新加入一个要优先处理。咁我岂不是第二至第九个既key都要改?

作者: oprso   发布时间: 2013-09-18

同埋,个key系应该一路加上去,定系,成个list一次过减?
一号key永远会系下一个会处理?

作者: oprso   发布时间: 2013-09-18

引用:原帖由 oprso 於 2013-8-3 06:13 PM 发表
同埋,个key系应该一路加上去,定系,成个list一次过减?
一号key永远会系下一个会处理?



这是程式算法问题了。
可能有好多解决方法。
如果原本要改 n 个 record ,效率可能会好差。
你可以考虑加另一种 data (在另一个 table),如 startX 记录第一个 x 是什么,那么加到最前就可以 startX -= 1 那样改。
想做好些可以考虑用时间相关/产生的数值来排。
可能要考虑效率与正确性之间有没有违反的问题。

作者: xianrenb   发布时间: 2013-09-18

视乎你有几frequency, 如果唔系成日用, 可以将个KEY SET 做10, 20, 30, 40
咁一个两个打尖就SET 佢做21 OR 25 就得啦, 后面唔使点郁

不过要CHECK

作者: zero_man   发布时间: 2013-09-18

可以用link方法,加多一个field,例如叫next.

field1 next
------ -----
null, R1
R1, S3
R2
R3
R4, S1
S1
S2, S4
S3, R2
S4

然后建立一个select view, 个算法系,如果field1非null则取之,然后看next有否位置,有取之,再跳到该位置,循环。

具体可参考design pattern linked list

作者: tcell   发布时间: 2013-09-18

the easy way to do is to maintain a list of priority queue, whatever you update the queue, you may need to serialize to xml file or mysql database.

作者: form5   发布时间: 2013-09-18

感谢几位既建议。
好似用10,20,30最简单同埋我写得到出黎。

唔该晒。

作者: oprso   发布时间: 2013-09-18