imediasun пишет:как добавить в базу строку под 3 им номером при этом чтобы все строки включая третью сместились на единицу в большую сторону, тем самым уступая место новой третьей строке.
Это может nested set model. Там опупенные запросы на такие операции. Но вы можете понять что в БД никаких номеров строк вообще не предусмотрено и не будет. Поэтому когда вам они нужны - их надо вычислять по различным обстоятельствам самостоятельно. Допустим для всякого рода рейтингов придется добавить поле рейтинг и попросту сортировать по нему. У кого стоит выше - тот окажется впереди и наоборот.
(Добавление)
Рейтинг добавляется с 1, а потом при каждом лайке увеличивается на 1. update table set rating = rating + 1;
(Добавление)
imediasun пишет:вставит в портфолио картинку под определенным приорететом
Это хуже. Придется дейсвительно перезаписывать все. Геморрой. Называется упорядочивание. К сортировке отношения не имеет. Поэтому придумайте систему приоритетов в отдельной таблице и линкуйте фотки к той или иной записи. Тогда не геморрой.
CODE ( SQL):
скопировать код в буфер обмена
CREATE TABLE rating ( rating_id int UNSIGNED NOT NULL UNIQUE KEY, rating_name varchar(64) NOT NULL ); CREATE TABLE photos ( photo_id... rating_id int UNSIGNED NOT NULL ); SELECT * FROM photo INNER JOIN rating USING(rating_id) ORDER BY rating.rating_id
Все, отсортировали по рейтингу. Обратите внимание что ид рейтинга не автоинкремент. Такое поле там лишнее, поскольку требуется управляемое value, автоинкремент не управляемый, но валуе должно быть уникальным и оно уникальное.
(Добавление)
Можно сделать связь прямо по именам рейтингов. Но тогда придется индексировать имена и связанное поле должно быть такого же типа чтобы связь устанавливалась по индексу. Поэтому по числу.
(Добавление)
Материально выглядит так. Заполняете таблицу рейтингов и затем при добавлении или редактировании записи о фотке меняете в поле rating_id значение на значение того рейтинга в таблице рейтингов которого данная говнофотка заслуживает.(Отредактировано автором: 01 Ноября, 2013 - 11:33:29)
|