2014-12-03 6 views
0

В моем приложении любой пользователь может создать почтовый объект, который содержит заголовок, описание и идентификатор. Эти почтовые объекты хранятся в базе данных на сервере. Тем не менее, мне нужен способ назначить уникальные идентификаторы для сообщений, поэтому я могу назначить пользователя на их почту (только идентификатор сообщения будет сохранен в основных данных телефона плаката). Прямо сейчас я использую целые числа в качестве идентификатора. Например, когда пользователь отправляет сообщение, у меня есть он, поэтому запрашивается база данных, и я нахожу идентификатор последнего отправленного сообщения, а затем присваиваю идентификатор текущего сообщения на один больше, чем идентификатор последнего. Затем сообщение загружается в базу данных. Я чувствую, что это плохая практика, потому что если 2 человека случайно отправляют свои сообщения в одно и то же время, их соответствующим сообщениям может быть присвоен одинаковый идентификатор. Итак, я спрашиваю, как мне назначить какой-то идентификатор объекту в базе данных, чтобы гарантировать его уникальность? Должен ли я назначить его в php-скрипте, а затем каким-то образом вернуть этот идентификатор обратно в Xcode? Извините, я новичок в этом.Как назначить уникальный идентификатор объекту базы данных

ответ

1

Вы можете просто использовать идентификатор автоматического увеличения для своих сообщений, поэтому database выполняет эту работу за вас.

CREATE TABLE post(
    id INT NOT NULL AUTO_INCREMENT, 
    title VARCHAR(255) NOT NULL, 
    description VARCHAR(255), 
    PRIMARY KEY (id) 
); 

Просто проверить Auto increment example в тузде документации

после добавления данных в таблицу вы можете получить последний идентификатор вставленного сообщения с командой last_insert_id.

так что если вы используете PHP как язык программирования, и вы используете MySQLi для доступа к базе данных, вы можете использовать mysqli_insert_id для извлечения последнего идентификатора (смотрите пример в документации php.net для лучшего понимания)

+0

Как Я отправляю этот идентификатор обратно в Xcode сразу после его назначения? –

+0

так вы используете xcode или php? последний идентификатор может быть выбран с помощью SELECT last_insert_id(); – Olli

+0

Я использую Xcode для отправки запроса на URL-адрес моего php-файла, чтобы сохранить почтовый объект в базе данных. Как только идентификатор назначен, мне нужно отправить этот идентификатор обратно в Xcode. Нужно ли использовать возвращаемые данные? –

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