Как оформить таблицу пользователей в гипертаблике
Я хочу создать таблицу пользователей со следующими полями в гипертабельной базе данных:
rowkey : (unique Guid)
username : (unique in the table)
email : (unique in the table)
passwordHash : (string field)
passwordSalt : (string field)
firstName : (string field)
lastName : (string field)
теперь ключ строки является идентификатором пользователя, и я ссылаюсь на этот идентификатор, который принадлежит пользователю (я понимаю, что в гипертабельной таблице указываются только параметры auto первичного ключа) причина, по которой я не буду использовать имя пользователя в качестве ключа строки потому что имя пользователя может быть изменено, если оно произойдет, мне придется обновить много вещей во всей базе данных. ту же роль добавьте также в поле электронной почты.
Теперь пользователь может войти под своим именем пользователя или по электронной почте. поэтому мне нужно будет получить всю строку по электронной почте или по имени пользователя.
не могли бы вы помочь мне спроектировать эту таблицу, спасибо.
1 ответ
Если вы загружаете гипертабельные источники (или просматриваете источники в Интернете), то вы найдете пример проекта PHP, который реализует сайт микроблогов, похожий на твиттер. И в основном он реализует ту же пользовательскую таблицу, о которой вы просили (с одним отличием: он использует имя пользователя в качестве ключа строки). Но вы можете легко изменить это и использовать вместо этого GUID.
(Хотя, с точки зрения пользователя, я думаю, что вы очень редко меняете имя пользователя, и я не знаю ни одной веб-страницы, которая предлагает такую функцию. Изменение адреса электронной почты или местоположения, конечно, необходимо.)
Вот скрипт, который генерирует базу данных (ищите таблицу "профиля"): https://github.com/cruppstahl/hypertable/blob/v0.9.5/examples/php/microblog/setup.hql