Mysql
 sql >> база данни >  >> RDS >> Mysql

как да поддържате полето за ред на показване в php

Можете да използвате по-големи стойности за показване, като например :

apple : 1 000 000

orange : 2 000 000

banana : 3 000 000

Сега, ако искам да добавя potato в позиция 2 (n=2) вземам n (=> 2 :оранжево) и (n-1) (=> 1 :ябълка) позиция и ги разделям на 2, за да получа новата позиция на картофи :

(1 000 000 + 2 000 000) / 2

=1 500 000

apple : 1 000 000

**potato : 1 500 000**

orange : 2 000 000

banana : 3 000 000

Това ще работи доста дълго време и ако в даден момент почувствате, че сте изчерпали тази схема, все още можете да умножите всички стойности по 1000.

Можете също така да продължите да използвате ниска стойност (1, 2, 3, ...) и да дефинирате типа им като DOUBLE , така че те никога няма да се сблъскат, когато ги разделят на 2.

РЕДАКТИРАНЕ: Относно поставянето на банан на позиция 1 :

Използване на формула (n+(n-1))/2:

Тук n =1 (нова позиция).

Нашите данни са:

apple : 1 000 000

potato : 1 500 000

orange : 2 000 000

banana : 3 000 000

(1 000 000+(0))/2

=500 000

Поръчвам 500 000 на банан :

**banana : 500 000**

apple : 1 000 000

potato : 1 500 000

orange : 2 000 000

Още едно решение:създайте текстово поле, което ще бъде индексатор и ще съдържа всички идентификатори.

„1,2,3,4,5,6,7“

Сега, ако искам да сложа идентификатор на елемент 8 между 3 и 4, просто трябва да заменя ",4", с ",8,4,".

Въпреки че е по-сложно от гледна точка на изчисленията да се намери елемент с индекс n, така че аз лично бих използвал първото решение.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да вмъкнете NULL стойност от PHP променлива в MySQL, като не използвате SQL инжекция?

  2. Имам нужда от необичайно подреждане на mysql резултати

  3. Покажи артикул за деня

  4. nodejs mysql Грешка:Връзката е изгубена Сървърът затвори връзката

  5. Проблем с изчакване на MYSQL 8 часа