Я все еще новичок в php, javascript и т. Д., И я делаю свой файл register.php для приложения, над которым я работаю, и теперь я хочу, чтобы каждый зарегистрированный пользователь получил уникальный идентификатор, и вот что я получил:
<?php echo date("Ymd") ?>
Это дает мне (прямо сейчас) 20161005, и я хочу, чтобы это было частью моего идентификатора для моих пользователей, а затем я хочу добавить к этому число, например
$userID= date('Ymd') + some number
Это число должно начинаться с 1 снова в начале следующего месяца, чтобы моя база данных не получала много номеров в конце 🙂
Эта комбинация этих двух чисел будет моим идентификатором пользователя, который поможет мне определить, какие данные загружать в приложение и т. Д. ^^
Возможно ли это реализовать с помощью php?
Не сказать, что вы делаете это неправильно, но вы должны рассмотреть возможность использования свойства AUTO_INCREMENT, встроенного в БД. Это даст вам целое число, которое автоматически увеличивается с каждой вставкой.
Вы можете установить его как атрибут таблицы,
dev.mysql.com/doc/refman/5.7/en/example-auto-increment.html
И затем, когда вы делаете вставки, вы просто пропускаете это поле, и волшебным образом оно будет увеличиваться. Если вам нужно использовать его сразу после вставки, вы можете получить его значение с помощью (в MySqli)
mysqli_insert_id( $db );
http://php.net/manual/en/mysqli.insert-id.php
Затем для созданного времени вы должны использовать правильный тип данных, такой как отметка времени или дата / время. Это также может быть установлено, чтобы иметь значение по умолчанию NOW()
текущее время Затем, когда вы делаете запросы на основе даты, вы можете использовать такие вещи, как MONTH( create_date )
чтобы найти всех пользователей, которые подписались в данный месяц и т. д.
Вот вики-страница о том, что я имел в виду под суррогатным ключом
https://en.wikipedia.org/wiki/Surrogate_key
По сути, это просто уникальный идентификатор, не полученный из реальных данных. Тогда, будучи пользователями, хорошим примером естественного ключа будет адрес электронной почты, так как в большинстве случаев электронная почта пользователей должна быть уникальной.
Других решений пока нет …