2013-03-01 4 views
2

У меня есть таблица со списком пользователей (имя пользователя, пароль). Но эта таблица была создана без ID, и я не могу ее изменить. Как создать уникальный идентификатор (если возможно, целое), чтобы установить отношения с другими таблицами?создание отношений без идентификаторов

UPDATE:

Список пользователей не совсем таблица в моей базе данных, это только данные, полученные от веб-сервиса, поэтому, когда пользователи войти в систему, проверить, если учетные данные существуют в список пользователей, возвращающих true или false. Он отлично работает, но теперь я должен ассоциировать вещи с каждым пользователем, например с продуктами. В нормальной ситуации мне просто нужно поместить идентификатор пользователя в таблицу продуктов, но здесь у меня нет этого идентификатора.

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

Это хорошее решение?

+1

Где находится стол? База данных SQL? Вам нужно предоставить намного больше деталей. – jman

+1

Почему вы не можете изменить таблицу? Предполагаю, вы имеете в виду таблицу MySQL? Вы можете добавить новую таблицу? –

+1

Привет, Карлос, Почему ты не можешь изменить таблицу? Если вы могли бы запустить таблицу alter, чтобы добавить столбец id, это будет вашим лучшим вариантом. Это mysql, sql server, sql lite? –

ответ

2

Если вы не можете изменить таблицу по любой причине, как вы заявляете в своем вопросе, я думаю, что по крайней мере username будет уникальным значением. Несмотря на то, что использование строки в качестве первичного ключа не является идеальным, это совершенно выполнимо, и нет ничего, что помешало бы вам использовать это для ваших отношений.

Конечно, изменение таблицы для добавления поля int было бы лучшим способом продвижения вперед, но на самом деле это не обязательно.

+0

Да, я думал использовать имя пользователя, как идентификатор тоже. возможно хэшированный, idk. Благодарю. –

+0

Я не уверен, что есть какая-то причина беспокоить его. Я бы просто использовал его, как он уже существует. –

0

попробовать этот

ALTER TABLE table_name ADD column_name INT FIRST; 
+0

Это не называется 'UNIQUE' –

+0

Я не могу этого сделать, спасибо в любом случае. –

1

Мое понимание вашего вопроса и ситуация выглядит следующим образом:

  1. Вы не можете изменить тот факт, что таблица в вопросе был создан без независимой `идентификатор».

  2. У вас есть достаточно прав, чтобы добавить поле к этой таблице на данный момент.

  3. Существует способ получить временное окно, когда доступ пользователей к этой таблице будет отключен.

Если это так, то вам нужно добавить это поле и заполнить его целыми целыми числами.

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