групповой msql запрос - PullRequest
       12

групповой msql запрос

0 голосов
/ 18 февраля 2010

У меня есть куча удостоверений личности.Я могу назначать их один раз в день.

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

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

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

, а затем поместил другую запись в id_records с данными.

Есть ли способ сделать это с одной таблицей?Я использую PHP и MySQL.

Спасибо!

Ответы [ 2 ]

1 голос
/ 18 февраля 2010

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

0 голосов
/ 18 февраля 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...