2016-03-17 3 views
1

мне нужно сортировать мой результат запроса к тому времени, что они вставлены
самые простой способ для хранения auto_increment ключа с каждой строкой, чтобы отсортировать данные по Этом
, но также должно иметь случайным Id генерируется primary_key
было бы что-то вроде следующего:
авто колонок прибавки наряду с первичным ключом

 
+------------------------+-------------+------------------+ 
| sortId(auto_increment) | id(primary) | content(varchar) | 
+------------------------+-------------+------------------+ 
| 0      | 23245  | some text  | 
+------------------------+-------------+------------------+ 
| 1      | 94655  | some text  | 
+------------------------+-------------+------------------+ 
| 2      | 59413  | some text  | 
+------------------------+-------------+------------------+ 

так что я буду иметь возможность загружать свои данные, отсортированные по sortID
, но, как я вижу В phpmyadmin, я не могу добавить столбец auto_increment, когда у меня есть primary_key в моей таблице.
Почему это происходит и как я могу его решить?
Можно ли лучше отсортировать результаты запроса, поступающие из базы данных?

спасибо.

+1

Любая причина, по которой вы не хотите ее использовать, - установка 'sortId' в качестве основного индекса с автоматическим приращением, а' id' - уникальный индекс? – Shomz

+0

Я понятия не имел, могу ли я использовать уникальные индексированные внешние ключи? – JamesHanies

+0

Конечно, любой индекс может использоваться как внешний ключ. :) – Shomz

ответ

0

Если вы беспокоитесь об установке ограничений внешнего ключа, их можно установить в любом индексированном поле, поэтому я предлагаю вам установить sortId как первичный индекс с автоматическим приращением, а id - уникальный индекс.

Если у вас действительно нет веских оснований идти против этого обычного подхода.

0

Изменить столбец sortID из INT к TIMESTAMP и установите его значение по умолчанию TIMESTAMP. Он будет вставлять текущую временную метку каждый раз, когда создается строка, и вы не только сможете сортировать их так же, как сортировать целые числа, но также будете знать, когда произошло создание.

+0

такая хорошая идея. но это фактически тратит пространство на хранение и снижает производительность. Мне не нужно время генерации. Спасибо, в любом случае – JamesHanies

Смежные вопросы