Как я могу создать два уровня аутентификации для регистрации на моем сайте? - PullRequest
0 голосов
/ 28 июня 2010

У меня уже есть простая система регистрации, использующая php и mysql.Он работает достаточно хорошо.Однако, когда люди посещают мой сайт и регистрируются, я хотел бы, чтобы они регистрировались как часть определенной группы.Итак, я думал, что регистрация будет происходить так:

Посетитель попадает на index.php, нажимает ссылку «Регистрация группы».
Посетитель указывает имя группы и пароль группы.[Для этой группы создается новая таблица, в которой все пользовательские данные будут храниться для этой конкретной группы]
Посетителю затем предлагается типичные регистрационные данные - имя, адрес электронной почты и т. Д. - и эти данные сохраняются в новомсоздана групповая таблица.

Любые последующие посетители, связанные с этой группой, будут нажимать «Рег. Пользователя»
Посетителю будет предложено ввести имя группы и пароль
Если все верно, то ему будет предложено ввести типичные данные регистрациихраниться в таблице его группы.

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

Ответы [ 2 ]

1 голос
/ 28 июня 2010

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

Что касается вашей идеи добавить новую таблицу для каждой группы, то это плохая идея.Представьте, если у вас есть 100 групп.Тогда у вас будет 100 таблиц только для групп.Если вы получите до 1000 групп, то у вас будет 1000 таблиц.Попробуйте управлять этим.Это будет очень расстраивать очень быстро.Вместо этого вам следует сначала создать таблицу «Группа» со всеми связанными данными (имя группы, пароль и т. Д.).Затем добавьте поле в таблицу User, в котором будет храниться связанный идентификатор из таблицы Group.Таким образом, всякий раз, когда вы ищите пользователя, вы можете легко проверить, в какую группу входит пользователь, просто присоединившись к двум таблицам, а не пытаясь выяснить, на какую таблицу смотреть, как в исходном плане.

1 голос
/ 28 июня 2010

В итоге вы хотите получить таблицу для ваших пользователей и другую (одну) таблицу для информации о вашей группе.Таблица пользователя будет иметь поле внешнего ключа, чтобы связать ее с группой.Когда пользователь присоединяется к группе, вы вводите значение в это поле.Пользователи, не входящие в группы, будут иметь нулевое значение в этом поле.Если пользователи могут создавать группы, они просто добавят новую строку в таблицу групп.

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

USER
- id
- username
- password
- etc...

GROUP
- id
- name
- password (?)
- etc...

USER_GROUP_CR
- fk_user
- fk_group

Таблица USER_GROUP_CR - это таблица «перекрестных ссылок» или «ссылок», которая позволит вам создать отношение «многие ко многим».Таким образом, вы можете иметь пользователей в нескольких группах без создания дополнительных таблиц.Когда пользователь присоединяется к группе, добавьте в таблицу USER_GROUP_CR строку с идентификатором пользователя и идентификатором группы.Вы можете запросить эту таблицу, чтобы выяснить, к каким группам принадлежит пользователь или какие пользователи входят в группу.

Не следует создавать новую таблицу для каждой группы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...