2010-02-18 3 views
0

У меня есть группа идентификаторов. Я могу назначить их один раз в день.groupby msql query

Мне нужно запросить мою базу данных, посмотреть, есть ли у них какой-либо идентификатор для раздачи (если я не раздавал все из них в течение 24 часов), и если есть какие-либо возможности, напишите новую строку в базу данных, в которой говорится, что идентификатор был выдан. Мне также нужно знать, какой пользователь провел идентификатор в определенное время.

Единственный способ, которым я могу понять это, создав две таблицы - одна active_ids (содержит, кому принадлежит конкретный идентификатор право Теперь) и один id_records (содержит идентификаторы, которые принадлежат в настоящее время и в прошлом). Тогда я бы сказал что-то вроде:

UPDATE active_ids SET user_id=xyz WHERE UNIX_TIMESTAMP(current_timestamp) - UNIX_TIMESTAMP(date) > 84600 LIMIT 1; 

, а затем Pusing еще одну запись в id_records с данными.

Есть ли способ, который я могу сделать с помощью одного стола? Я использую PHP и MySQL.

Спасибо!

ответ

1

Несомненно, если идентификатор пользователя не является фактическим первичным ключом, вы можете просто отметить все творения user_id, а затем выполнить поиск по запросам по времени, чтобы узнать, что доступно.

0

У вас может быть столбец «день» типа DATE и столбец «user_id» и использовать составной первичный ключ (day,user_id).

Или то, что, как я подозреваю, может быть лучшей идеей: иметь подлинно уникальный идентификатор, а затем вызвать не уникальный идентификатор «код доступа» вместо него и иметь составное уникальное ограничение.