2010-11-21 2 views
1

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

В столбцах таблицы являются: USER_ID отмычкой точки

идентификатор_пользователя каждого пользователя должен быть уникальным, и то же самое с их отмычкой. Точки - это всего лишь целочисленное значение, которое я буду редактировать время от времени. Теперь, когда я получаю пользователя на свой сайт, я должен проверить, является ли он новым пользователем или старым. Я проверяю, если их user_id уже находится в базе данных, а если нет, я создаю новую запись в таблицу, которая вводит их user_id, passkey и 0 для точек. Итак, когда я создаю таблицу, мне все еще нужно указывать уникальный для user_id и passkey, хотя я буду проверять сначала, прежде чем создавать новые записи?

И как бы проверить, является ли user_id уже в системе? Я думаю что-то вроде: SELECT * FROM клиентов WHERE user_id = 'test'

А потом подсчитайте строки, и если он равен нулю, я создаю новую запись, не так ли? Я пытаюсь сделать все правильно, прежде чем запустить свой код. Благодарю.

+1

Вы можете сделать прямой запрос 'SELECT COUNT (*) ...', а не возвращать * все * строки и * считать * ваши результаты. –

ответ

1

Это хорошая идея, так или иначе отметить поля, как UNIQUE, потому что в случае, если вы пропустите что-то в вашем коде, DB все равно поймают ошибку, прежде чем все сломается. Я не уверен, почему вы хотите, чтобы ключ доступа был уникальным, но что-то не так с двумя пользователями, имеющими один и тот же ключ доступа?

Ваш запрос в порядке, но я предполагаю, что вы на самом деле не нужны фактические данные пользователя при проверке, так что вы можете просто попросить графа:

SELECT COUNT(*) FROM customers WHERE user_id='test' 

и если возвращаемое значение> 0, user_id уже существует.

+0

Отлично, теперь вы можете сказать мне также, когда я создаю новую запись, а также добавляю 4-й параметр, дату, как установить значение по умолчанию для этого 4-го параметра на вчера (за день до создания записи) ? – LostInTheCode

+1

@ ShadowX360: Проще всего это сделать на PHP с помощью 'strtotime ('вчера')' и передать значение метки времени в базу данных. – casablanca

1

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

Однако, я бы беспокоиться, что вы должны иметь имена пользователей и ... паролями

1

Сначала установите поле ключа доступа по умолчанию на 0. Затем для user_id сделайте это auto_increment. Это будет увеличиваться на каждый каждый раз, когда будет добавлена ​​новая строка (например, новый пользователь). Вам не нужно проверять, находится ли user_id в системе при вставке в базу данных.

При вставке вам просто нужно указать ключ доступа, предположительно это пароль пользователя. Все редактирование полей можно выполнить в phpMyAdmin, в разделе «Структура» для вашего вкладка.

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