比如我有水果的下拉列表中,我想在這個特定的順序來顯示它們: - 橙子(0) - 葡萄(10) - 芒果(20) - 蘋果(30) 我目前處理這個問題的方法是添加一個索引10秒(所以我可以插入額外的水果之間)。但是,這不是非常有效,特別是如果插入的項目數量超過9項。任何想法如何我可以更好地實施這一點?保留行序列數據庫
Q
保留行序列數據庫
1
A
回答
0
我通常給表priority
或ordering
列,然後對其進行排序。這樣,排序與主鍵分開,所以我可以輕鬆地更改排序並添加新項目。
希望這會有所幫助!
0
爲什麼不創建一個「分類」表,幷包括以下字段: 類別ID 說明 SortOrder的(1,2,3,4 ......)
然後在你的水果表,添加類別ID,然後加入水果分類和ORDER BY SortOrder,水果名...
0
如果你只是要創建一個靜態訂單,而不是很改變它,其他人建議的ordering
列可能是要走的路。
如果您很可能會更改訂單並且列表很長,那麼這意味着更新相關問題後的每一行,這會導致大量鎖定。你也可以指定一個水果的以下項目:
FRUIT NEXT_FRUIT
Oranges Grapes
Grapes Mangoes
Mangoes Apples
Apples (null)
然後你可以做(甲骨文語法)
SELECT level, fruit FROM fruit_table
START WITH fruit = 'Oranges'
CONNECT BY fruit = PRIOR next_fruit;
LEVEL FRUIT
---------- ----------
1 Oranges
2 Grapes
3 Mangoes
4 Apples
然後,添加一個新的項目,你只需要插入和一個前更新到它。
0
你可以使用有理數,但有更多的實數。
這是一個笑話,但一個浮點數有足夠的空間,並且要輸入一個條目,它只是兩個條目之間的中點。
通常對於這樣的事情,我使用一個單獨的INT SortOrder列(不是主鍵),只是做班次。如果表格確實很寬並且其中包含大量實體數據,請將SortOrder列移到單獨的表格中以避免索引問題。
相關問題
- 1. 保留從Grails域到數據庫的列順序
- 2. 數據庫多線程與主鍵保留序列更新
- 3. 保存數據時保留新行
- 4. 在Doctrine2數據庫中保留日期
- 5. 當從系列中製作數據框時保留列順序
- 6. SQL:更改表的數據列 - 保留列順序
- 7. ViewPager數據保留
- 8. 驗證StringLength,但在數據庫列上保留更多空間
- 9. H2數據庫列名稱「GROUP」是保留字
- 10. 保留數據幀列的值
- 11. 保留卷序列號
- 12. 數據庫在程序結束後不能保留
- 13. 保留變量的Android數據庫處理程序
- 14. android在卸載應用程序後保留數據庫
- 15. Phonegap應用程序數據庫版本更新後保留
- 16. XML排序以保留根數據
- 17. 如何保留應用程序數據?
- 18. 保留插入數據的順序phpmyadmin
- 19. 保留Android應用程序數據
- 20. PostgreSQL的多克爾運行保留數據庫
- 21. 如何向數據庫中插入值並保留換行符?
- 22. 如何保留textarea和數據庫之間的換行符?
- 23. 運行Flask-Migrate時保留數據庫中的現有表格
- 24. 數據表不保留添加的行
- 25. 運行時保留Javadoc元數據?
- 26. 只保留數據表的前10行
- 27. 遺留數據庫 - 更新列
- 28. nhibernate遺留數據庫額外列
- 29. 在Python中保留列順序熊貓數據框
- 30. 當序列化表單數據時保留分組
增加100?它仍然是同一個整數列,所以沒有更多或更少的效率。 – 2012-01-13 03:59:14
如果存在相同的排序值,我通常會使用任意值的排序順序列和名稱上的輔助alpha排序,但是如果您必須保留不起作用的確切順序。 – 2012-01-13 04:00:46