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

Как да позволим на потребител да вмъкне някъде в списък?

Най-простият метод от гледна точка на кода е да използвате стил на свързан списък, където имате следващ идентификатор на елемент, а не стойност на поръчка. Това е по-малко полезно в малки списъци, но когато започнете да увеличавате размера на списъка, прави актуализациите/преместванията/премахванията много по-чисти и предотвратява евентуалното актуализиране на хиляди кортежи, за да направите промяна в 1 поръчка.

++ Нямам точен пример за код под ръка, но бихте направили обаждане за всички списъци на потребител

SELECT Posts.id, Posts.next, Posts.content, User.firstPost FROM db.posts AS Posts 
JOIN db.user as User ON Posts.ownerid = User.id 
WHERE User.id='123' AND Posts.active = 1;

Това ще получи всички публикации на един потребител и тогава ще имате поле, което съдържа идентификатора на следващата публикация. За да започнете, ще ви е необходим ключ за идентифициране на първата публикация (съхранете идентификатора на първата публикация в информацията за потребителя). След като изтеглите първата публикация, грабвате нейната стойност „следваща“ и я използвате, за да идентифицирате следващата публикация.

Това изглежда малко лудо за кратък списък, но помислете за потребител с 1000 публикации. Ако трябва да добавят 1 публикация на 2-ра позиция. В традиционната система за цифрово подреждане сега ще трябва да актуализирате 999 други реда с +1 актуализация. С това решение, ако трябва да вмъкнете публикация на втора позиция, просто заявявате първата публикация, за да получите следващата й стойност. След като го получите, вие го променяте, за да бъде стойността на новата втора публикация, и задавате следващата стойност на втората публикация да бъде тази, която първоначално се държи от първата.

[1st Post] --Next---> [2nd Post] --Next---> [3rd Post]

След вмъкване:

[1st Post] -.                          .--> [2nd Post] --Next---> [3rd Post]
            `--Next--> [New 2nd Post]--`



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Качване на изображения в CKEditor без използване на плъгин

  2. Забавяне на скоростта на вмъкване с нарастването на таблицата в mysql

  3. MySQL:Dump база данни от SQL заявка

  4. Как да се уверите, че вашата база данни MySQL е защитена

  5. Изтичане на MySql JDBC дори с „autoReconnect=true“