Перенумировывание primary key

zaartix

Новичок
Перенумировывание primary key

Есть int not null auto_increment primary key ячейка(id), можно ее перенумеровать так, чтоб все данные имели последовательный id, начинающийся с 1.
 

Demiurg

Guest
Re: Перенумировывание primary key

Автор оригинала: zaartix
Есть int not null auto_increment primary key ячейка(id), можно ее перенумеровать так, чтоб все данные имели последовательный id, начинающийся с 1.
можно ужалить это поле, потом опять создать. Только скорее всего этого делать не надо.
 

tony2001

TeaM PHPClub
Re: Перенумировывание primary key

Автор оригинала: zaartix
Есть int not null auto_increment primary key ячейка(id), можно ее перенумеровать так, чтоб все данные имели последовательный id, начинающийся с 1.
вопрос задается каждые две недели.
это сделать можно, но не нужно (я не знаю таких случаев, когда это вообще применимо).
 

PaLa4

Guest
Есть int not null auto_increment primary key ячейка(id), можно ее перенумеровать так, чтоб все данные имели последовательный id, начинающийся с 1.
Вот смотрите делаю я новости с mysql
таблица news (грубо описанная)
id text
1 йцу
2 фыв
3 ячс
4 енг
Вот теперь как скрипт догадается в каком порядке новости выводить (ведь все строки равноправные)
Select * from news order id desc
Т.е. id служит порядоком.
id должен не повторятся

ТАК ВОТ
что мне сделать если я хочу новость передвинуть?
Все id ячейки менять? Этож может их 1000000?
А что делать если ещё есть функция удалить?
 

Crazy

Developer
Автор оригинала: PaLa4
Т.е. id служит порядоком.
Тебе кто-то обещал, что автонумеруемое поле будет сторого возрастающим? :)

Правильное решение -- завести отдельное поле для задания порядка. Или отказаться от автонумерации.
 

PaLa4

Guest
Ну это понятно завел я поле myorder и что далее?
как орнанизовать порядок-то?

P.S. Кто будет умночать и говорить что выстраивать нужно по дате можите даже не отвечать - это не приемленно.
(Т.К в строке со временем можно теги вставлять и т.п.)
 

Crazy

Developer
Автор оригинала: PaLa4
(Т.К в строке со временем можно теги вставлять и т.п.)
Ужас какой. Нахрена "тэги" в строке со временем? Чтобы вставить туда дату 01.01.2004 в виде флэшового ролика с дедморозами?
 

PaLa4

Guest
Ну это на усмотрение админа а дата это просто VARCHAR (100)
Потому по дате сортировать не реально и не нужно!

А вот что не понятно
Вот смотрите делаю я новости с mysql
таблица news (грубо описанная)
myorder text
1 йцу
2 фыв
3 ячс
4 енг
Вот теперь как скрипт догадается в каком порядке новости выводить (ведь все строки равноправные)
Select * from news order myorder desc
Т.е. myorder служит порядоком.
myorder должен не повторятся

ТАК ВОТ
что мне сделать если я хочу новость передвинуть?
Все id ячейки менять? Этож может их 1000000?
А что делать если ещё есть функция удалить?
 

Crazy

Developer
Автор оригинала: PaLa4
что мне сделать если я хочу новость передвинуть?
Все id ячейки менять?
Нахрена ВСЕ? Из махохизма?

P.S. Что до удаления, то никто не требует, чтобы значения order шли подряд. Более того, их рекомендуетяс делать с интервалами.
 

PaLa4

Guest
И чтоб меня ПОНЯЛИ МНЕ НЕ НУЖНО нумеровать строки как в плохом здешнем faq Мне нужно с втолбик записать порядок вывода и организовать его смену
 

Krisha

pain in the neck
2PaLa4

Ты несеш что-то такое, что на голову не оденешь, какие в попу тэги, у всех нормальных людей новости имеют дату!
И у всех нормальных людей дата это не VARCHAR (100) а типы:

DATETIME '0000-00-00 00:00:00'
DATE '0000-00-00'
TIMESTAMP 00000000000000 (длина зависит от количества выводимых символов)
TIME '00:00:00'
YEAR

прочти мануал
 

Crazy

Developer
Автор оригинала: Krisha
И у всех нормальных людей дата это не VARCHAR (100)
У него, наверное, в поле "дата" жизненно необходимо иметь возможность написать "надысь". :)
 

Demiurg

Guest
Блин, а мы откуда знаем в каком порядке выводить новости. Это знаешь пока только ты, теперь это надо рассказать скрипту. Через нас (услуги перевода с русского на русский - бесплатны), либо сам.
 

Krisha

pain in the neck
2Crazy
Гы гы :)

2PaLa4
Поясни, зачем тебе порядок вывода новостей нужен ?
Да, я бы понял, если бы тебе было нужно было типа рейтинг новости, то есть "самые интерессные вверху", тогда добавляем колонку в таблицу rank и туды сохраняем некое число отображающее интересность новости (как мы его выститываем не важно) потом выводим новости ORDER BY rank
 

PaLa4

Guest
2Krisha ладно пусть есть колонка ранг
rank text
1 a
2 b
3 c
И какой алгоритм чтоб сменить ранг с 3 на 1?
 
Сверху