我正在寫一些需要存儲在數據庫中的項目的軟件,該項目需要有一個「優先級」,所以我們最終如何實現SQL(Postgres的)優先
ID | Name | Priority
--------+--------------+----------
1 | Pear | 4
2 | Apple | 2
3 | Orange | 1
4 | Banana | 3
所以,現在,最重要的水果是橙子,然後是蘋果,然後是香蕉,然後是梨。
現在,我想讓梨子成爲梨子,橙子,蘋果,香蕉之首。該表看起來像:
ID | Name | Priority
--------+--------------+----------
1 | Pear | 1
2 | Apple | 3
3 | Orange | 2
4 | Banana | 4
什麼是最好的方式來實現這與PHP和Postgres。鑑於表不會超過12-13項,我想過在選擇整個表並重寫優先事項之前更新所有內容。
*重要*
優先級可以以任意順序被改變,所以優先級7可以設置爲優先級3(因此移動下面的優先級3都記錄下來缺口),而我們需要縮小差距優先級爲7的項目已經被移到優先級3中。
'+ 1' - 儘管Postgres的只支持功能,而不是存儲過程。 – 2012-01-12 17:07:09
如果我將優先級爲3的項目移至優先級2,那麼這會不會在優先級上留下空隙? – 2012-01-12 17:10:47
我剛纔澄清了問題的最後一部分。 – 2012-01-12 17:16:08